[go: up one dir, main page]

CN102289510B - Method and apparatus for writing data to a production volume - Google Patents

Method and apparatus for writing data to a production volume Download PDF

Info

Publication number
CN102289510B
CN102289510B CN201110255006.XA CN201110255006A CN102289510B CN 102289510 B CN102289510 B CN 102289510B CN 201110255006 A CN201110255006 A CN 201110255006A CN 102289510 B CN102289510 B CN 102289510B
Authority
CN
China
Prior art keywords
data
written
data block
copy
target area
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CN201110255006.XA
Other languages
Chinese (zh)
Other versions
CN102289510A (en
Inventor
张李秋
杨彬
吴佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec Technologies Co Ltd
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 Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN201110255006.XA priority Critical patent/CN102289510B/en
Publication of CN102289510A publication Critical patent/CN102289510A/en
Priority to PCT/CN2012/078662 priority patent/WO2013029434A1/en
Application granted granted Critical
Publication of CN102289510B publication Critical patent/CN102289510B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The embodiment of the invention provides a method and device for writing data to a production volume. The method for writing the data to the production volume comprises the following steps of: receiving a data operation request carrying data to be written and the initial address and the length of the data to be written; when copy-on-write is not carried out in a target region of the data to be written in the production volume, determining data blocks in the need of performing the copy-on-write according to the initial address and the length of the data to be written and the preset storage granularity; performing the copy-on-write on the data blocks in the need of performing the copy-on-write, and generating mapping marks corresponding to the data blocks; and writing the data to be writtento the data blocks after performing the copy-on-write. According to the method and device disclosed by the invention, the sizes of practical data blocks on the production volume corresponding to the mapping marks can be dynamically adjusted; the system performance is increased; and resource pool resources is saved.

Description

向生产卷写入数据的方法和装置Method and apparatus for writing data to a production volume

技术领域 technical field

本发明实施例涉及通信技术领域,尤其涉及一种向生产卷写入数据的方法和装置。Embodiments of the present invention relate to the field of communication technologies, and in particular, to a method and device for writing data to a production volume.

背景技术 Background technique

随着信息科学技术的不断发展和因特网的广泛应用,产生的数据量以令人难以置信的速度迅猛增长,存储系统的设计逐渐成为应用系统设计需要考虑的问题,业务的进步也对数据处理技术在可用性、可靠性和可扩展性等方面提出了更高的要求,同时也在大力倡导绿色存储,因此对存储系统资源的合理分配和利用也提出了更高的要求。一方面,数据保护、数据备份和数据并行利用(如测试、报表生成和/或数据分析等)的需求显得越来越重要;另一方面,联机商业模式要求系统不停的运转,停机则意味着业务的停顿和商业机会的丢失。由此,数据快照技术应运而生。With the continuous development of information science and technology and the wide application of the Internet, the amount of data generated is growing at an incredible speed. The design of the storage system has gradually become a problem that needs to be considered in the design of the application system. Higher requirements are put forward in terms of availability, reliability, and scalability. At the same time, green storage is also vigorously advocated, so higher requirements are put forward for the reasonable allocation and utilization of storage system resources. On the one hand, the demand for data protection, data backup, and data parallel utilization (such as testing, report generation, and/or data analysis, etc.) is becoming more and more important; on the other hand, the online business model requires the system to run continuously, and downtime means This leads to a halt in business and loss of business opportunities. As a result, the data snapshot technology came into being.

快照是对一个数据对象产生完全可用的副本,包含该数据对象在某一时间点的映像。利用数据快照技术,可以在瞬间获得完全可用的生产卷数据的即时时刻的一致性映像(即快照),并占用较少的存储空间;快照创建后,对快照的访问可以和对生产卷的访问同时进行,从而不影响生产卷的业务连续性。其中,生产卷,也称为源逻辑单元号(Logic Unit Number;以下简称:LUN)或者源物理卷,是为存储系统的基本业务应用提供数据存储和访问空间的卷,部署在存储阵列中。A snapshot is a fully available copy of a data object, including the image of the data object at a certain point in time. Using the data snapshot technology, you can instantly obtain a consistent image (snapshot) of fully available production volume data in an instant, and occupy less storage space; after the snapshot is created, the access to the snapshot can be the same as the access to the production volume Simultaneously so as not to affect the business continuity of production volumes. Among them, the production volume, also called the source logical unit number (Logic Unit Number; hereinafter referred to as: LUN) or the source physical volume, is a volume that provides data storage and access space for basic business applications of the storage system, and is deployed in the storage array.

在创建快照时,需要建立一份快照时刻的逻辑副本,即生成一个映射表,指示快照对应的实际数据的存放位置。快照刚创建时,映射表中的指针都指向生产卷中,映射表中的每一个记录对应生产卷上的一个实际数据块。When creating a snapshot, a logical copy at the time of the snapshot needs to be created, that is, a mapping table is generated to indicate the storage location of the actual data corresponding to the snapshot. When the snapshot is just created, the pointers in the mapping table all point to the production volume, and each record in the mapping table corresponds to an actual data block on the production volume.

当要对生产卷进行修改时,则需要先判断待修改部分的数据是否已作过写前拷贝(Copy-On-Write),如果未做过写前拷贝,则需要先进行写前拷贝,即将待修改部分的数据复制到资源池,并修改映射表,使指针指向资源池中的相应位置,然后再对生产卷进行修改;如果待修改部分的数据已做过写前拷贝,则可以直接修改生产卷的该部分的数据。如果生产卷有多个快照,则在对生产卷进行修改之前,需对每个快照的映射信息进行如前所述的判断,并根据判断结果确定是否进行写前拷贝,然后才可以对生产卷进行修改。其中,资源池用于存放快照的不同于生产卷的数据,包括写生产卷时产生的写前拷贝数据,资源池与生产卷部署在同一存储阵列中。When modifying the production volume, it is necessary to first determine whether the data to be modified has been copied before writing (Copy-On-Write). Copy the data of the part to be modified to the resource pool, and modify the mapping table so that the pointer points to the corresponding position in the resource pool, and then modify the production volume; if the data of the part to be modified has been copied before writing, it can be directly modified The data for that portion of the production volume. If the production volume has multiple snapshots, before modifying the production volume, it is necessary to judge the mapping information of each snapshot as described above, and determine whether to perform copy-before-write according to the judgment result, and then the production volume can be modified. to modify. Wherein, the resource pool is used to store snapshot data different from the production volume, including the copy-before-write data generated when the production volume is written, and the resource pool and the production volume are deployed in the same storage array.

数据快照技术在保障业务连续性的前提下,产生了数据对象在某时刻的数据一致性映像,在一定程度上有力保障了数据的可靠性和完整性。但是,由于映射表中的映射标记对应的生产卷上实际数据块的大小是固定的,因此存在降低系统性能和浪费资源池资源的问题,并且长时间读写后,映射表中的映射标记随机分布,因此在读写快照或生产卷时需要进行多次重定向,且每次重定向对应的位置是随机的,读写性能将大为下降。On the premise of ensuring business continuity, the data snapshot technology generates a data consistency image of the data object at a certain moment, which effectively guarantees the reliability and integrity of the data to a certain extent. However, since the size of the actual data block on the production volume corresponding to the mapping mark in the mapping table is fixed, there are problems of reducing system performance and wasting resource pool resources, and after a long time of reading and writing, the mapping mark in the mapping table is random Therefore, multiple redirections are required when reading and writing snapshots or production volumes, and the location corresponding to each redirection is random, and the read and write performance will be greatly reduced.

发明内容 Contents of the invention

本发明实施例提供一种向生产卷写入数据的方法和装置,以实现动态调整映射标记对应的生产卷上实际数据块的大小,提高系统性能和节约资源池资源。Embodiments of the present invention provide a method and device for writing data to a production volume, so as to dynamically adjust the size of an actual data block on the production volume corresponding to a mapping mark, improve system performance and save resource pool resources.

本发明实施例提供一种向生产卷写入数据的方法,包括:An embodiment of the present invention provides a method for writing data to a production volume, including:

接收数据操作请求,所述数据操作请求携带待写入数据,以及所述待写入数据的起始地址和长度;receiving a data operation request, the data operation request carrying data to be written, and the start address and length of the data to be written;

当生产卷中所述待写入数据的目标区域未进行过写前拷贝时,根据所述待写入数据的起始地址、长度和预先设定的存储粒度确定需要进行写前拷贝的数据块;When the target area of the data to be written in the production volume has not been copied before writing, determine the data block that needs to be copied before writing according to the start address, length and preset storage granularity of the data to be written ;

对所述需要进行写前拷贝的数据块进行写前拷贝,并生成与所述数据块对应的映射标记;performing copy-before-write on the data block that needs to be copied before write, and generating a mapping mark corresponding to the data block;

将所述待写入数据写入进行写前拷贝之后的数据块。Writing the data to be written into the data block after the copy-before-write is performed.

本发明实施例还提供一种向生产卷写入数据的装置,包括:An embodiment of the present invention also provides a device for writing data to a production volume, including:

接收模块,用于接收数据操作请求,所述数据操作请求携带待写入数据,以及所述待写入数据的起始地址和长度;A receiving module, configured to receive a data operation request, the data operation request carrying data to be written, and the start address and length of the data to be written;

确定模块,用于当所述生产卷中所述待写入数据的目标区域未进行过写前拷贝时,根据所述待写入数据的起始地址、长度和预先设定的存储粒度确定需要进行写前拷贝的数据块;A determining module, configured to determine the need according to the start address, length, and preset storage granularity of the data to be written when the target area of the data to be written in the production volume has not been copied before writing. Data blocks for copy-before-write;

生成模块,用于对所述确定模块确定的需要进行写前拷贝的数据块进行写前拷贝,并生成与所述数据块对应的映射标记;A generating module, configured to perform copy-before-write on the data blocks determined by the determination module that need to be copied before write, and generate a mapping mark corresponding to the data blocks;

写入模块,用于将所述接收模块接收的待写入数据写入进行写前拷贝之后的数据块。The writing module is configured to write the data to be written received by the receiving module into the data block after the copy-before-write is performed.

通过本发明实施例,接收到待写入数据之后,当生产卷中待写入数据的目标区域未进行过写前拷贝时,根据待写入数据的起始地址、长度和预先设定的存储粒度确定需要进行写前拷贝的数据块;对上述需要进行写前拷贝的数据块进行写前拷贝,并生成与上述数据块对应的映射标记;将待写入数据写入进行写前拷贝之后的数据块。从而可以实现动态调整映射标记对应的生产卷上实际数据块的大小,提高系统性能和节约资源池资源。Through the embodiment of the present invention, after receiving the data to be written, when the target area of the data to be written in the production volume has not been copied before writing, according to the start address, length and preset storage of the data to be written The granularity determines the data blocks that need to be copied before writing; performs copy before writing on the above data blocks that need to be copied before writing, and generates the mapping mark corresponding to the above data blocks; writes the data to be written after copying before writing data block. Therefore, it is possible to dynamically adjust the size of the actual data block on the production volume corresponding to the mapping mark, improve system performance and save resource pool resources.

附图说明 Description of drawings

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings that need to be used in the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description These are some embodiments of the present invention. Those skilled in the art can also obtain other drawings based on these drawings without creative work.

图1为本发明向生产卷写入数据的方法一个实施例的流程图;FIG. 1 is a flowchart of an embodiment of a method for writing data to a production volume in the present invention;

图2为本发明向生产卷写入数据的方法另一个实施例的流程图;2 is a flow chart of another embodiment of the method for writing data to a production volume in the present invention;

图3为本发明数据写入过程一个实施例的示意图;Fig. 3 is a schematic diagram of an embodiment of the data writing process of the present invention;

图4为本发明数据写入过程另一个实施例的示意图;4 is a schematic diagram of another embodiment of the data writing process of the present invention;

图5为本发明数据写入过程再一个实施例的示意图;5 is a schematic diagram of another embodiment of the data writing process of the present invention;

图6为本发明合并连续的映射标记一个实施例的示意图;FIG. 6 is a schematic diagram of an embodiment of merging continuous mapping marks in the present invention;

图7为本发明向生产卷写入数据的装置一个实施例的结构示意图;FIG. 7 is a schematic structural diagram of an embodiment of an apparatus for writing data to a production volume according to the present invention;

图8为本发明向生产卷写入数据的装置另一个实施例的结构示意图。FIG. 8 is a schematic structural diagram of another embodiment of an apparatus for writing data to a production volume according to the present invention.

具体实施方式 Detailed ways

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。In order to make the purpose, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments It is a part of embodiments of the present invention, but not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by persons of ordinary skill in the art without making creative efforts belong to the protection scope of the present invention.

图1为本发明向生产卷写入数据的方法一个实施例的流程图,如图1所示,该向生产卷写入数据的方法可以包括:Fig. 1 is a flowchart of an embodiment of a method for writing data to a production volume according to the present invention. As shown in Fig. 1, the method for writing data to a production volume may include:

步骤101,接收数据操作请求,该数据操作请求携带待写入数据,以及上述待写入数据的起始地址和长度。Step 101, receiving a data operation request, the data operation request carrying data to be written, and the start address and length of the data to be written.

步骤102,当生产卷中上述待写入数据的目标区域未进行过写前拷贝时,根据上述待写入数据的起始地址、待写入数据的长度和预先设定的存储粒度确定需要进行写前拷贝的数据块。Step 102, when the target area of the data to be written in the production volume has not been copied before writing, it is determined according to the starting address of the data to be written, the length of the data to be written and the preset storage granularity that need to be performed. Copy-before-write data blocks.

具体地,根据上述待写入数据的起始地址、长度和预先设定的存储粒度确定需要进行写前拷贝的数据块可以为:生产卷所在的存储阵列根据上述待写入数据的长度和预先设定的存储粒度确定需要进行写前拷贝的数据块的大小,并根据上述待写入数据的起始地址和上述需要进行写前拷贝的数据块的大小确定上述需要进行写前拷贝的数据块的位置。Specifically, determining the data blocks that need to be copied before writing according to the start address, length, and preset storage granularity of the data to be written may be: the storage array where the production volume is located is based on the length of the data to be written and the preset The set storage granularity determines the size of the data block that needs to be copied before writing, and determines the data block that needs to be copied before writing according to the starting address of the data to be written and the size of the data block that needs to be copied before writing s position.

本实施例中,上述预先设定的存储粒度可以为:需要进行写前拷贝的数据块的大小为预先设定的存储粒度的最小值的2的幂次方倍;上述预先设定的存储粒度的最小值为2的幂次方倍,例如:可以是访问磁盘的最小输入输出(Input Output;以下简称:IO)粒度,即一个扇区的大小。In this embodiment, the above-mentioned preset storage granularity may be: the size of the data block that needs to be copied before writing is the power of 2 times the minimum value of the preset storage granularity; the above-mentioned preset storage granularity The minimum value of is a power of 2 times, for example: it may be the minimum input and output (Input Output; hereinafter referred to as: IO) granularity of accessing the disk, that is, the size of a sector.

步骤103,对需要进行写前拷贝的数据块进行写前拷贝,并生成与上述数据块对应的映射标记。Step 103, perform copy-before-write on the data blocks that need to be copied before write, and generate mapping marks corresponding to the above data blocks.

其中,映射标记用于记录进行写前拷贝的数据块的相关信息,为了进一步的说明映射标记,举例来说,图书馆馆藏书籍,如果要借阅,可以通过记录的索引号去查找对应的书籍,这里,映射标记就可以理解为索引号,进行写前拷贝的数据块就可以理解为书籍。另外,映射标记还可以为指针等,本发明实施例对映射标记的形式不作限定,只要映射标记可以记录进行写前拷贝的数据块的相关信息即可。Among them, the mapping mark is used to record the relevant information of the data block that is copied before writing. In order to further explain the mapping mark, for example, if you want to borrow books in the library, you can use the index number of the record to find the corresponding book. Here, the mapping mark can be understood as an index number, and the data block for copy-before-write can be understood as a book. In addition, the mapping mark can also be a pointer, etc., and the embodiment of the present invention does not limit the form of the mapping mark, as long as the mapping mark can record the relevant information of the data block to be copied before writing.

步骤104,将上述待写入数据写入进行写前拷贝之后的数据块。Step 104, write the data to be written into the data block after the copy-before-write is performed.

进一步地,在将上述待写入数据成功写入进行写前拷贝之后的数据块之后,生产卷所在的存储阵列返回写操作成功响应;或者,在将上述待写入数据写入进行写前拷贝之后的数据块失败之后,返回写操作失败响应。Further, after the above-mentioned data to be written is successfully written into the data block after the copy-before-write, the storage array where the production volume is located returns a write operation success response; or, after the above-mentioned data to be written is written and the copy-before-write After subsequent data blocks fail, a write operation failure response is returned.

另外,本实施例中,当生产卷中上述待写入数据的目标区域所覆盖的数据块中存在至少一个进行过写前拷贝的数据块时,生产卷所在的存储阵列根据上述进行过写前拷贝的数据块的数量、上述进行过写前拷贝的数据块的大小和上述目标区域的大小,将待写入数据拆分为一段待写入数据段,或者根据上述进行过写前拷贝的数据块的数量、上述进行过写前拷贝的数据块的大小、上述进行过写前拷贝的数据块在目标区域中的位置和上述目标区域的大小将待写入数据拆分为至少两段待写入数据段。其中,该目标区域的大小即为待写入数据的长度。In addition, in this embodiment, when there is at least one data block that is copied before overwriting in the data blocks covered by the target area of data to be written in the production volume, the storage array where the production volume is located performs pre-overwriting The number of data blocks to be copied, the size of the above-mentioned data blocks copied before overwriting, and the size of the above-mentioned target area, split the data to be written into a section of data to be written, or according to the above data copied before overwriting The number of blocks, the size of the above-mentioned data blocks copied before overwriting, the position of the above-mentioned data blocks copied before overwriting in the target area, and the size of the above-mentioned target area split the data to be written into at least two sections to be written into the data segment. Wherein, the size of the target area is the length of the data to be written.

举例来说,当生产卷中上述待写入数据的目标区域所覆盖的数据块中只存在一个进行过写前拷贝的数据块,且该进行过写前拷贝的数据块的大小与上述目标区域的大小相同时,只需将上述待写入数据拆分为一段待写入数据段,这时也相当于未对上述待写入数据进行拆分。For example, when there is only one copy-before-write data block in the data block covered by the target area of the data to be written in the production volume, and the size of the copy-before-write data block is the same as that of the target area When the sizes of are the same, it is only necessary to split the above-mentioned data to be written into a section of data to be written, which is equivalent to not splitting the above-mentioned data to be written.

当生产卷中上述待写入数据的目标区域所覆盖的数据块中只存在一个进行过写前拷贝的数据块,且该进行过写前拷贝的数据块小于上述目标区域的大小时,如果该进行过写前拷贝的数据块位于上述目标区域的端点位置,则可以将上述待写入数据拆分为至少两段待写入数据段;如果该进行过写前拷贝的数据块位于上述目标区域的中部,则需要将上述待写入数据拆分为至少三段待写入数据段。When there is only one copy-before-write data block in the data block covered by the target area to be written in the production volume, and the copy-before-write data block is smaller than the size of the target area, if the If the data block that is copied before overwriting is located at the endpoint of the above target area, the data to be written can be split into at least two data segments to be written; if the data block that is copied before overwriting is located in the above target area In the middle part, the above data to be written needs to be split into at least three data segments to be written.

例如:假设待写入数据的目标区域覆盖了3个数据块,依次为数据块1、数据块2和数据块3;如果数据块1或数据块3进行过写前拷贝,即进行过写前拷贝的数据块位于上述目标区域的端点位置,则将待写入数据拆分为两段待写入数据段即可,拆分后的一段待写入数据段的目标区域为数据块1或数据块3,拆分后的另一段待写入数据段的目标区域为除数据块1或数据块3之外的两块数据块;如果数据块2进行过写前拷贝,即进行过写前拷贝的数据块位于上述目标区域的中部,则需要将待写入数据拆分为三段待写入数据段,拆分后的一段待写入数据段的目标区域为数据块1,拆分后的另一段待写入数据段的目标区域为数据块2,拆分后的再一段待写入数据段的目标区域为数据块3。For example: Assume that the target area of the data to be written covers 3 data blocks, which are data block 1, data block 2 and data block 3 in sequence; if data block 1 or data block 3 is copied before overwriting, that is, before overwriting If the copied data block is located at the endpoint of the above target area, the data to be written can be split into two data segments to be written, and the target area of the split data segment to be written is data block 1 or data Block 3, the target area of another data segment to be written after splitting is two data blocks other than data block 1 or data block 3; if data block 2 is copied before overwriting, copy before overwriting If the data block is located in the middle of the above target area, the data to be written needs to be split into three data segments to be written. The target area of the split data segment to be written is data block 1. After splitting The target area of another data segment to be written is data block 2, and the target area of another data segment to be written after splitting is data block 3.

本实施例以上述待写入数据的目标区域所覆盖的数据块中只存在一个进行过写前拷贝的数据块为例对待写入数据的拆分方式为例进行说明,当待写入数据的目标区域所覆盖的数据块中存在两个或两个以上进行过写前拷贝的数据块时,待写入数据的拆分方式与上类似,在此不再赘述,简单来说,就是要使拆分后获得的至少两段待写入数据段形成两组,一组待写入数据段的目标区域只覆盖进行过写前拷贝的数据块,另一组待写入数据段的目标区域只覆盖未进行过写前拷贝的数据块。In this embodiment, the data block covered by the target area of the data to be written has only one data block that has been copied before writing as an example to illustrate the splitting method of the data to be written. When the data to be written When there are two or more data blocks that have been copied before writing in the data blocks covered by the target area, the splitting method of the data to be written is similar to the above, and will not be repeated here. Simply put, it is to use At least two data segments to be written after splitting form two groups. The target area of one group of data segments to be written only covers the data blocks copied before overwriting, and the target area of the other group of data segments to be written only covers Overwrite data blocks that have not been copied before write.

然后,生产卷所在的存储阵列判断上述至少两段待写入数据段中每段待写入数据段待写入的目标区域所覆盖的数据块是否进行过写前拷贝;Then, the storage array where the production volume is located judges whether the data block covered by the target area to be written in each of the at least two data segments to be written has been copied before writing;

对于待写入的目标区域所覆盖的数据块未进行过写前拷贝的待写入数据段,上述存储阵列根据上述待写入数据段的起始地址、长度和预先设定的存储粒度确定需要进行写前拷贝的数据块;对上述需要进行写前拷贝的数据块进行写前拷贝,并生成与该数据块对应的映射标记;最后,将上述待写入数据段中的数据写入进行写前拷贝之后的数据块。For the data segment to be written that has not been copied before writing in the data block covered by the target area to be written, the storage array determines the required A data block that needs to be copied before writing; perform a pre-write copy on the data block that needs to be copied before writing, and generate a mapping mark corresponding to the data block; finally, write the data in the data segment to be written above for writing The data block after the pre-copy.

对于待写入的目标区域所覆盖的数据块进行过写前拷贝的待写入数据段,将上述待写入数据段中的数据写入上述待写入数据段待写入的目标区域所覆盖的数据块。For the data segment to be written in which the data block covered by the target area to be written is copied before overwriting, the data in the data segment to be written is written into the target area to be written in the data segment to be written. of data blocks.

进一步地,在上述至少两段待写入数据段均写入成功之后,上述存储阵列返回写操作成功响应;或者,在上述至少两段待写入数据段中至少一段待写入数据段写入失败之后,上述存储阵列返回写操作失败响应。Further, after the at least two data segments to be written are successfully written, the storage array returns a write operation success response; or, at least one of the at least two data segments to be written is written After the failure, the above storage array returns a write operation failure response.

本实施例中,步骤104之后,生产卷所在的存储阵列还可以对映射标记对应的数据块进行检测,将物理上连续的数据块对应的映射标记合并为一个映射标记;从而可以减少内存资源的消耗,提升系统性能。举例来说,生产卷所在的存储阵列对映射标记对应的数据块进行检测之后,发现映射标记1对应数据块1,映射标记3对应数据块2,假设数据块1所在区域的物理地址为0~9,数据块2所在区域的物理地址为10~19,则数据块1和数据块2为物理上连续的数据块,因此可以将数据块1对应的映射标记1和数据块2对应的映射标记3合并为一个映射标记。In this embodiment, after step 104, the storage array where the production volume is located can also detect the data block corresponding to the mapping mark, and merge the mapping marks corresponding to the physically continuous data blocks into one mapping mark; thus, the memory resource consumption can be reduced. Consumption, improve system performance. For example, after the storage array where the production volume is located detects the data block corresponding to the mapping mark, it finds that mapping mark 1 corresponds to data block 1, and mapping mark 3 corresponds to data block 2. Assume that the physical address of the area where data block 1 is located is between 0 and 9. The physical address of the area where data block 2 is located is 10-19, then data block 1 and data block 2 are physically continuous data blocks, so the mapping mark 1 corresponding to data block 1 and the mapping mark corresponding to data block 2 can be 3 merged into one map tag.

上述实施例可以实现动态调整映射标记对应的生产卷上实际数据块的大小,提高系统性能和节约资源池资源;并且上述实施例支持对连续的映射标记进行合并,从而可以减少内存资源的消耗,提升系统性能。The above embodiment can dynamically adjust the size of the actual data block on the production volume corresponding to the mapping mark, improve system performance and save resource pool resources; and the above embodiment supports merging consecutive mapping marks, thereby reducing the consumption of memory resources. Improve system performance.

图2为本发明向生产卷写入数据的方法另一个实施例的流程图,如图2所示,该向生产卷写入数据的方法可以包括:Fig. 2 is a flowchart of another embodiment of the method for writing data to a production volume according to the present invention. As shown in Fig. 2, the method for writing data to a production volume may include:

步骤201,生产卷所在的存储阵列接收数据操作请求,该数据操作请求携带待写入数据,以及上述待写入数据的起始地址和长度。Step 201, the storage array where the production volume is located receives a data operation request, the data operation request carries data to be written, and the start address and length of the data to be written.

步骤202,判断生产卷中上述待写入数据的目标区域是否进行过写前拷贝;如果否,则执行步骤203;如果生产卷中上述待写入数据的目标区域所覆盖的数据块中存在至少一个进行过写前拷贝的数据块,则执行步骤206。Step 202, determine whether the target area of the above-mentioned data to be written in the production volume has been copied before writing; if not, then perform step 203; if there are at least For a data block that has undergone copy-before-write, step 206 is performed.

具体地,生产卷,也称为源LUN,可以保存在主机的内存中的映射表中,存储阵列正常运行时生产卷是在内存中进行读写,系统下电后最终会保存到存储阵列上。Specifically, the production volume, also called the source LUN, can be stored in the mapping table in the memory of the host. When the storage array is running normally, the production volume is read and written in the memory, and will be finally saved to the storage array after the system is powered off. .

判断映射表中是否存在与该生产卷中上述待写入数据的目标区域所覆盖的数据块对应的映射标记;如果映射表中不存在与上述目标区域所覆盖的数据块对应的映射标记,则可以确定生产卷中上述待写入数据的目标区域未进行过写前拷贝;如果映射表中存在与上述目标区域所覆盖的至少一个数据块对应的映射标记,则可以确定生产卷中上述待写入数据的目标区域所覆盖的数据块中存在至少一个进行过写前拷贝的数据块。Determine whether there is a mapping mark corresponding to the data block covered by the target area of the data to be written in the production volume in the mapping table; if there is no mapping mark corresponding to the data block covered by the target area in the mapping table, then It can be determined that the target area of the above-mentioned data to be written in the production volume has not been copied before writing; if there is a mapping mark corresponding to at least one data block covered by the above-mentioned target area in the mapping table, it can be determined that the above-mentioned data to be written in the production volume There is at least one copy-before-write data block in the data blocks covered by the target area of the incoming data.

步骤203,生产卷所在的存储阵列根据上述待写入数据的起始地址、长度和预先设定的存储粒度确定需要进行写前拷贝的数据块。In step 203, the storage array where the production volume is located determines the data blocks that need to be copied before writing according to the start address, length and preset storage granularity of the data to be written.

具体的,上述存储阵列可以根据上述待写入数据的长度和预先设定的存储粒度确定需要进行写前拷贝的数据块的大小,并根据上述待写入数据的起始地址和上述需要进行写前拷贝的数据块的大小确定上述需要进行写前拷贝的数据块的位置。Specifically, the above-mentioned storage array can determine the size of the data block that needs to be copied before writing according to the length of the above-mentioned data to be written and the preset storage granularity, and write according to the start address of the above-mentioned data to be written and the above-mentioned needs. The size of the data block to be copied before determines the position of the data block that needs to be copied before writing.

本实施例中,上述预先设定的存储粒度可以为:需要进行写前拷贝的数据块的大小为预先设定的存储粒度的最小值的2的幂次方倍;上述预先设定的存储粒度的最小值为2的幂次方倍,例如:可以是访问磁盘的最小IO粒度,即一个扇区的大小。In this embodiment, the above-mentioned preset storage granularity may be: the size of the data block that needs to be copied before writing is the power of 2 times the minimum value of the preset storage granularity; the above-mentioned preset storage granularity The minimum value of is a power of 2 times, for example: it can be the minimum IO granularity for accessing the disk, that is, the size of a sector.

步骤204,生产卷所在的存储阵列对上述需要进行写前拷贝的数据块进行写前拷贝,并生成与上述数据块对应的映射标记。Step 204 , the storage array where the production volume is located performs copy-before-write on the data blocks that need to be copied before write, and generates a mapping mark corresponding to the above data blocks.

进一步地,可以将生成的映射标记记录到上述映射表中。Further, the generated mapping mark may be recorded in the above mapping table.

步骤205,生产卷所在的存储阵列将上述待写入数据写入进行写前拷贝之后的数据块;然后执行步骤210。Step 205, the storage array where the production volume is located writes the data to be written into the data block after the copy-before-write; and then executes step 210.

步骤206,生产卷所在的存储阵列根据进行过写前拷贝的数据块的数量、上述进行过写前拷贝的数据块的大小和上述目标区域的大小,将待写入数据拆分为一段待写入数据段,或者根据进行过写前拷贝的数据块的数量、进行过写前拷贝的数据块的大小、上述进行过写前拷贝的数据块在目标区域中的位置和上述目标区域的大小将待写入数据拆分为至少两段待写入数据段。Step 206, the storage array where the production volume is located splits the data to be written into a segment to be written according to the number of data blocks copied before overwriting, the size of the data blocks copied before overwriting, and the size of the target area into the data segment, or according to the number of data blocks that are copied before overwriting, the size of the data blocks that are copied before overwriting, the position of the data blocks that are copied before overwriting in the target area, and the size of the above target area The data to be written is split into at least two data segments to be written.

举例来说,当生产卷中上述待写入数据的目标区域所覆盖的数据块中只存在一个进行过写前拷贝的数据块,且该进行过写前拷贝的数据块的大小与上述目标区域的大小相同时,只需将上述待写入数据拆分为一段待写入数据段,这时也相当于未对上述待写入数据进行拆分;当生产卷中上述待写入数据的目标区域所覆盖的数据块中只存在一个进行过写前拷贝的数据块,且该进行过写前拷贝的数据块的大小小于上述目标区域的大小时,如果该进行过写前拷贝的数据块位于上述目标区域的端点位置,则可以将上述待写入数据拆分为至少两段待写入数据段;如果该进行过写前拷贝的数据块位于上述目标区域的中部,则需要将上述待写入数据拆分为至少三段待写入数据段;例如:假设待写入数据的目标区域覆盖了3个数据块,依次为数据块1、数据块2和数据块3;如果数据块1或数据块3进行过写前拷贝,即进行过写前拷贝的数据块位于上述目标区域的端点位置,则将待写入数据拆分为两段待写入数据段即可,拆分后的一段待写入数据段的目标区域覆盖数据块1或数据块3,拆分后的另一段待写入数据段的目标区域覆盖除数据块1或数据块3之外的两块数据块;如果数据块2进行过写前拷贝,即进行过写前拷贝的数据块位于上述目标区域的中部,则需要将待写入数据拆分为三段待写入数据段,拆分后的一段待写入数据段的目标区域覆盖数据块1,拆分后的另一段待写入数据段的目标区域覆盖数据块2,拆分后的再一段待写入数据段的目标区域覆盖数据块3。For example, when there is only one copy-before-write data block in the data block covered by the target area of the data to be written in the production volume, and the size of the copy-before-write data block is the same as that of the target area When the sizes of the above-mentioned data to be written are the same, it is only necessary to split the above-mentioned data to be written into a data segment to be written, which is equivalent to not splitting the above-mentioned data to be written; when the target of the above-mentioned data to be written in the production volume There is only one copy-before-overwrite data block in the data blocks covered by the area, and the size of the copy-before-write data block is smaller than the size of the target area, if the copy-before-write data block is located in The endpoint position of the above-mentioned target area, the above-mentioned data to be written can be split into at least two sections of data to be written; if the data block to be copied before overwriting is located Split the incoming data into at least three data segments to be written; for example: suppose the target area of the data to be written covers three data blocks, which are data block 1, data block 2 and data block 3 in sequence; if data block 1 or Data block 3 is copied before overwriting, that is, the data block that is copied before overwriting is located at the endpoint of the above-mentioned target area, then the data to be written is split into two data segments to be written. The target area of the data segment to be written covers data block 1 or data block 3, and the target area of another segment of the data segment to be written after splitting covers two data blocks except data block 1 or data block 3; if the data Block 2 is copied before overwriting, that is, the data block that is copied before overwriting is located in the middle of the above-mentioned target area, so the data to be written needs to be split into three data segments to be written, and a segment to be written after splitting The target area of the data segment covers data block 1, the target area of another split data segment to be written covers data block 2, and the split target area of another data segment to be written covers data block 3.

本实施例以上述待写入数据的目标区域所覆盖的数据块中只存在一个进行过写前拷贝的数据块为例对待写入数据的拆分方式为例进行说明,当待写入数据的目标区域所覆盖的数据块中存在两个或两个以上进行过写前拷贝的数据块时,待写入数据的拆分方式与上类似,在此不再赘述,简单来说,就是要使拆分后获得的至少两段待写入数据段形成两组,一组待写入数据段的目标区域只覆盖进行过写前拷贝的数据块,另一组待写入数据段的目标区域只覆盖未进行过写前拷贝的数据块。In this embodiment, the data block covered by the target area of the data to be written has only one data block that has been copied before writing as an example to illustrate the splitting method of the data to be written. When the data to be written When there are two or more data blocks that have been copied before writing in the data blocks covered by the target area, the splitting method of the data to be written is similar to the above, and will not be repeated here. Simply put, it is to use At least two data segments to be written after splitting form two groups. The target area of one group of data segments to be written only covers the data blocks copied before overwriting, and the target area of the other group of data segments to be written only covers Overwrite data blocks that have not been copied before write.

步骤207,判断至少两段待写入数据段中每段待写入数据段待写入的目标区域所覆盖的数据块是否进行过写前拷贝。对于待写入的目标区域所覆盖的数据块进行过写前拷贝的待写入数据段,执行步骤208;对于待写入的目标区域所覆盖的数据块未进行过写前拷贝的待写入数据段,执行步骤209。Step 207, judging whether the data block covered by the target area to be written in each of the at least two data segments to be written has been copied before writing. For the data segment to be written that has been copied before overwriting for the data block covered by the target area to be written, step 208 is performed; data segment, go to step 209.

其中,是否进行过写前拷贝的判断方式请参考步骤202中提供的方式,在此不再赘述。Wherein, please refer to the method provided in step 202 for the method of judging whether copy-before-write has been performed, and will not be repeated here.

步骤208,生产卷所在的存储阵列将上述待写入数据段中的数据写入上述待写入数据段待写入的目标区域所覆盖的数据块,然后执行步骤210。In step 208, the storage array where the production volume is located writes the data in the data segment to be written into the data block covered by the target area to be written in the data segment to be written, and then executes step 210.

步骤209,生产卷所在的存储阵列根据上述待写入数据段的起始地址、长度和预先设定的存储粒度确定需要进行写前拷贝的数据块;对上述需要进行写前拷贝的数据块进行写前拷贝,并生成与上述数据块对应的映射标记;将上述待写入数据段中的数据写入进行写前拷贝之后的数据块;然后执行步骤210。Step 209, the storage array where the production volume is located determines the data blocks that need to be copied before writing according to the start address, length and preset storage granularity of the data segment to be written; copy-before-write, and generate a mapping mark corresponding to the above-mentioned data block; write the data in the above-mentioned data segment to be written into the data block after the copy-before-write; and then perform step 210.

具体地,上述存储阵列根据上述待写入数据段的起始地址、长度和预先设定的存储粒度确定需要进行写前拷贝的数据块的方式与步骤203中提供的方式相同,在此不再赘述。Specifically, the above-mentioned storage array determines the data blocks that need to be copied before writing according to the start address, length and preset storage granularity of the above-mentioned data segments to be written in the same way as that provided in step 203, and will not repeat.

步骤210,判断待写入数据是否进行过拆分。如果是,则执行步骤211,如果待写入数据未进行过拆分,则执行步骤212。Step 210, judging whether the data to be written has been split. If yes, execute step 211, and if the data to be written has not been split, execute step 212.

具体地,可以在对待写入数据进行拆分之后,为拆分后的待写入数据段设置拆分标识,用于表示该待写入数据段中的数据是拆分后获得的待写入数据。这样,只要检测待写入数据中是否存在拆分标识,如果存在拆分标识,则待写入数据进行过拆分,如果不存在拆分标识,则待写入数据未进行过拆分。当然,这只是判断待写入数据是否进行过拆分的一种方式,本发明实施例并不仅限于此,本发明实施例对判断待写入数据是否进行过拆分的方式不作限定。Specifically, after the data to be written is split, a split flag can be set for the split data segment to be written, which is used to indicate that the data in the data segment to be written is obtained after splitting. data. In this way, it is only necessary to detect whether there is a split identifier in the data to be written, if there is a split identifier, the data to be written has been split, and if there is no split identifier, the data to be written has not been split. Of course, this is just a way of judging whether the data to be written has been split, and the embodiment of the present invention is not limited thereto.

步骤211,生产卷所在的存储阵列在拆分后的至少两段待写入数据段均写入成功之后,返回写操作成功响应;或者,在拆分后的至少两段待写入数据段中至少两段待写入数据段写入失败之后,返回写操作失败响应。Step 211, the storage array where the production volume is located returns a write operation success response after at least two split data segments to be written are successfully written; or, in at least two split data segments to be written After at least two data segments to be written fail to be written, a write operation failure response is returned.

步骤212,生产卷所在的存储阵列在将上述待写入数据成功写入进行写前拷贝之后的数据块之后,返回写操作成功响应;或者,在将上述待写入数据写入进行写前拷贝之后的数据块失败之后,返回写操作失败响应。Step 212: After the storage array where the production volume is located successfully writes the data to be written into the data block after the copy-before-write, it returns a write operation success response; or, after writing the data to be written into the copy-before-write After subsequent data blocks fail, a write operation failure response is returned.

本实施例中,生产卷所在的存储阵列还可以对映射标记对应的数据块进行检测,将物理上连续的数据块对应的映射标记合并为一个映射标记;从而可以减少内存资源的消耗,提升系统性能。举例来说,上述存储阵列对映射标记对应的数据块进行检测之后,发现映射标记1对应数据块1,映射标记3对应数据块2,假设数据块1所在区域的物理地址为0~9,数据块2所在区域的物理地址为10~19,则数据块1和数据块2为物理上连续的数据块,因此可以将数据块1对应的映射标记1和数据块2对应的映射标记3合并为一个映射标记。In this embodiment, the storage array where the production volume is located can also detect the data blocks corresponding to the mapping marks, and merge the mapping marks corresponding to the physically continuous data blocks into one mapping mark; thus, the consumption of memory resources can be reduced, and the system can be improved. performance. For example, after the above storage array detects the data block corresponding to the mapping mark, it is found that the mapping mark 1 corresponds to the data block 1, and the mapping mark 3 corresponds to the data block 2. Assuming that the physical address of the area where the data block 1 is located is 0-9, the data The physical address of the area where block 2 is located is 10 to 19, then data block 1 and data block 2 are physically continuous data blocks, so the mapping mark 1 corresponding to data block 1 and the mapping mark 3 corresponding to data block 2 can be combined into A map tag.

上述实施例可以实现动态调整映射标记对应的生产卷上实际数据块的大小,提高系统性能和节约资源池资源;并且上述实施例支持对连续的映射标记进行合并,从而可以减少内存资源的消耗,提升系统性能。The above embodiment can dynamically adjust the size of the actual data block on the production volume corresponding to the mapping mark, improve system performance and save resource pool resources; and the above embodiment supports merging consecutive mapping marks, thereby reducing the consumption of memory resources. Improve system performance.

下面以数据操作请求为IO,预先设定的存储粒度的最小值为1KB为例对本发明实施例提供的向生产卷写入数据的方法进行说明。The method for writing data to the production volume provided by the embodiment of the present invention will be described below by taking the data operation request as IO and the preset minimum storage granularity as 1 KB as an example.

场景一,生产卷所在的存储阵列接收到主机发送的IO1,大小为4KB,假设该生产卷上IO1待写入的目标区域没有进行过写前拷贝,由于IO1的大小为2的2次方倍,因此可以确定上述目标区域中需要进行写前拷贝的数据块的大小为4KB,直接将需要进行写前拷贝的数据块中的4KB数据拷贝到资源池,并生成与上述数据块对应的映射标记,并将生成的映射标记记录到映射表中,然后将IO1中的待写入数据写到进行写前拷贝之后的数据块,如图3所示,图3为本发明数据写入过程一个实施例的示意图。Scenario 1: The storage array where the production volume is located receives IO1 sent by the host, with a size of 4KB. Assume that the target area to be written to IO1 on the production volume has not been copied before writing, because the size of IO1 is 2 to the power of 2 , so it can be determined that the size of the data block that needs to be copied before writing in the above target area is 4KB, directly copy the 4KB data in the data block that needs to be copied before writing to the resource pool, and generate the mapping mark corresponding to the above data block , and record the generated mapping mark in the mapping table, then write the data to be written in IO1 to the data block after the copy before writing, as shown in Figure 3, Figure 3 is an implementation of the data writing process of the present invention Example diagram.

场景二,生产卷所在的存储阵列接收到IO2,大小为1.5KB,假设该生产卷上IO2待写入的目标区域没有进行过写前拷贝,由于IO2的大小不是2的幂次方倍,因此根据IO2的大小和预先设定的存储粒度,可以确定需要进行写前拷贝的数据块的大小为2KB,然后上述存储阵列将需要进行写前拷贝的数据块中的2KB数据拷贝到资源池,并生成与上述数据块对应的映射标记,并将生成的映射标记记录到映射表中,然后将IO2中的待写入数据写到进行写前拷贝之后的数据块,如图4所示,图4为本发明数据写入过程另一个实施例的示意图。图4中阴影区域表示大小为2KB的进行写前拷贝的数据块中未被IO2覆盖的区域。Scenario 2: The storage array where the production volume is located receives IO2 with a size of 1.5KB. Assume that the target area to be written to IO2 on the production volume has not been copied before writing. Since the size of IO2 is not a power of 2, therefore According to the size of IO2 and the preset storage granularity, it can be determined that the size of the data block that needs to be copied before writing is 2KB, and then the above storage array will copy the 2KB data in the data block that needs to be copied before writing to the resource pool, and Generate a mapping mark corresponding to the above data block, and record the generated mapping mark in the mapping table, and then write the data to be written in IO2 to the data block after the copy before writing, as shown in Figure 4, Figure 4 It is a schematic diagram of another embodiment of the data writing process of the present invention. The shaded area in FIG. 4 represents the area not covered by IO2 in the 2KB copy-before-write data block.

场景三,生产卷所在的存储阵列接收到IO3,大小为1.5MB,假设生产卷上IO3待写入的目标区域有部分已经进行过写前拷贝,生成了映射标记,此时需要将IO3拆分成至少两个小IO,再针对拆分后的每个IO按照本发明实施例提供的方法来确定数据块的大小,如图5所示,生产卷上IO3待写入的目标区域覆盖数据块1~4,其中数据块2和数据块3已进行过写前拷贝,由于数据块2和数据块3位于上述目标区域的中间位置,因此需要将IO3拆分为3个IO,分别记为IO3-1、IO3-2和IO3-3。Scenario 3: The storage array where the production volume is located receives IO3 with a size of 1.5MB. Assume that part of the target area to be written to IO3 on the production volume has been copied before writing and a mapping mark is generated. At this time, IO3 needs to be split into at least two small IOs, and then determine the size of the data block according to the method provided by the embodiment of the present invention for each IO after splitting, as shown in Figure 5, the target area to be written in IO3 on the production volume covers the data block 1 to 4, in which data block 2 and data block 3 have been copied before writing. Since data block 2 and data block 3 are located in the middle of the above target area, IO3 needs to be split into three IOs, which are respectively recorded as IO3 -1, IO3-2 and IO3-3.

其中,IO3-2待写入的目标区域所覆盖的数据块为数据块2和数据块3,由于数据块2和数据块3已经进行过写前拷贝,因此直接将IO3-2中的数据写入生产卷即可;IO3-1待写入的目标区域所覆盖的数据块为数据块1,IO3-3待写入的目标区域所覆盖的数据块为数据块4,假设数据块1、数据块2、数据块3、数据块4的大小分别为256KB、512KB、512KB和256KB,因此需要分别将数据块1和数据块4上256KB大小的数据拷贝到资源池,并生成分别与上述数据块1和数据块4对应的映射标记,并将生成的映射标记记录到映射表中,然后分别将IO3-1和IO3-3中的待写入数据写到进行写前拷贝之后的数据块1和数据块4,如图5所示,图5为本发明数据写入过程再一个实施例的示意图。Among them, the data blocks covered by the target area to be written by IO3-2 are data block 2 and data block 3. Since data block 2 and data block 3 have been copied before writing, the data in IO3-2 is directly written The data block covered by the target area to be written by IO3-1 is data block 1, and the data block covered by the target area to be written by IO3-3 is data block 4. Assume that data block 1, data The sizes of block 2, data block 3, and data block 4 are 256KB, 512KB, 512KB, and 256KB respectively, so it is necessary to copy the 256KB data on data block 1 and data block 4 to the resource pool respectively, and generate 1 and data block 4 corresponding to the mapping mark, and record the generated mapping mark in the mapping table, and then respectively write the data to be written in IO3-1 and IO3-3 to data block 1 and The data block 4 is shown in FIG. 5 , which is a schematic diagram of another embodiment of the data writing process of the present invention.

上述场景一和场景二为小数据块修改的场景,例如,银行的储户资料数据库修改等小数据块修改的业务场景,场景三为大数据块修改的场景,例如:网站图片修改和视频库应用等大数据块修改的业务场景。综上所述,本发明实施例提供的向生产卷写入数据的方法可以根据实际业务的应用动态调整快照数据块大小,可以合理分配和利用存储系统资源,使内存资源和资源池资源消耗最优。Scenario 1 and Scenario 2 mentioned above are scenarios for modifying small data blocks, for example, business scenarios for modifying small data blocks such as bank depositor data database modification. Scenario 3 is for scenarios for modifying large data blocks, such as website image modification and video library application Business scenarios such as large data block modification. To sum up, the method for writing data to the production volume provided by the embodiment of the present invention can dynamically adjust the size of the snapshot data block according to the application of the actual business, and can rationally allocate and utilize storage system resources, so that the consumption of memory resources and resource pool resources is minimized. excellent.

进一步地,本发明实施例中,生产卷所在的存储阵列还可以对映射标记对应的数据块进行检测,将物理上连续的数据块对应的映射标记合并为一个映射标记;从而可以减少内存资源的消耗,提升系统性能。图6为本发明合并连续的映射标记一个实施例的示意图,如图6所示,数据块1、数据块2、数据块3和数据块4为物理上连续的数据块,可以将数据块1、数据块2、数据块3和数据块4对应的映射标记合并为1个映射标记。Further, in the embodiment of the present invention, the storage array where the production volume is located can also detect the data block corresponding to the mapping mark, and combine the mapping marks corresponding to the physically continuous data blocks into one mapping mark; thus, the memory resource consumption can be reduced. Consumption, improve system performance. Fig. 6 is a schematic diagram of an embodiment of the present invention combining continuous mapping marks. As shown in Fig. 6, data block 1, data block 2, data block 3 and data block 4 are physically continuous data blocks, and data block 1 can be , data block 2, data block 3, and data block 4 corresponding mapping tags are merged into one mapping tag.

本发明实施例提供的向生产卷写入数据的方法可以合理分配和利用存储系统资源,减少内存资源和资源池资源的消耗,并且支持映射标记合并,可以提升存储系统的读性能,本发明实施例提供的向生产卷写入数据的方法不仅适用于虚拟快照,对克隆镜像、远程复制和LUN拷贝等复制业务同样适用。The method for writing data to the production volume provided by the embodiment of the present invention can rationally allocate and utilize storage system resources, reduce the consumption of memory resources and resource pool resources, and support the merging of mapping marks, which can improve the read performance of the storage system. The implementation of the present invention The method for writing data to the production volume provided in this example is not only applicable to virtual snapshots, but also applicable to replication services such as clone mirroring, remote replication, and LUN copy.

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。Those of ordinary skill in the art can understand that all or part of the steps for realizing the above-mentioned method embodiments can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, the It includes the steps of the above method embodiments; and the aforementioned storage medium includes: ROM, RAM, magnetic disk or optical disk and other various media that can store program codes.

图7为本发明向生产卷写入数据的装置一个实施例的结构示意图,本实施例中的向生产卷写入数据的装置可以作为存储阵列或存储阵列的一部分,实现本发明图1所示实施例的流程。如图7所示,该向生产卷写入数据的装置可以包括:接收模块71、确定模块72、生成模块73和写入模块74。Figure 7 is a schematic structural diagram of an embodiment of the device for writing data to the production volume according to the present invention. The device for writing data to the production volume in this embodiment can be used as a storage array or a part of the storage array to implement the present invention as shown in Figure 1 Example flow. As shown in FIG. 7 , the apparatus for writing data to the production volume may include: a receiving module 71 , a determining module 72 , a generating module 73 and a writing module 74 .

其中,接收模块71,用于接收数据操作请求,该数据操作请求携带待写入数据,以及上述待写入数据的起始地址和长度。Wherein, the receiving module 71 is configured to receive a data operation request, the data operation request carries the data to be written, and the start address and length of the data to be written.

确定模块72,用于当生产卷中上述待写入数据的目标区域未进行过写前拷贝时,根据上述待写入数据的起始地址、长度和预先设定的存储粒度确定需要进行写前拷贝的数据块;具体地,确定模块72可以根据上述待写入数据的长度和预先设定的存储粒度确定需要进行写前拷贝的数据块的大小,并根据上述待写入数据的起始地址和上述需要进行写前拷贝的数据块的大小确定需要进行写前拷贝的数据块的位置;本实施例中,上述预先设定的存储粒度可以为:需要进行写前拷贝的数据块的大小为预先设定的存储粒度的最小值的2的幂次方倍;上述预先设定的存储粒度的最小值为2的幂次方倍,例如:可以是访问磁盘的最小IO粒度,即一个扇区的大小。The determining module 72 is configured to determine that pre-write is required according to the starting address, length and preset storage granularity of the data to be written when the target area of the data to be written in the production volume has not been copied before writing. The copied data block; specifically, the determination module 72 can determine the size of the data block that needs to be copied before writing according to the length of the above-mentioned data to be written and the preset storage granularity, and according to the above-mentioned starting address of the data to be written and the size of the data block that needs to be copied before writing determines the position of the data block that needs to be copied before writing; in this embodiment, the above-mentioned preset storage granularity can be: the size of the data block that needs to be copied before writing is The power of 2 times the minimum value of the preset storage granularity; the minimum value of the above preset storage granularity is the power of 2 times, for example: it can be the minimum IO granularity for accessing the disk, that is, one sector the size of.

生成模块73,用于对确定模块72确定的需要进行写前拷贝的数据块进行写前拷贝,并生成与上述数据块对应的映射标记。The generating module 73 is configured to perform copy-before-write on the data blocks determined by the determining module 72 that require copy-before-write, and generate mapping marks corresponding to the above-mentioned data blocks.

写入模块74,用于将接收模块71接收的待写入数据写入进行写前拷贝之后的数据块。The writing module 74 is configured to write the data to be written received by the receiving module 71 into the data block after the copy-before-write is performed.

上述向生产卷写入数据的装置可以实现动态调整映射标记对应的生产卷上实际数据块的大小,提高系统性能和节约资源池资源。The above-mentioned device for writing data to the production volume can dynamically adjust the size of the actual data block on the production volume corresponding to the mapping mark, improve system performance and save resource pool resources.

图8为本发明向生产卷写入数据的装置另一个实施例的结构示意图,本实施例中的向生产卷写入数据的装置可以作为存储阵列,或存储阵列的一部分实现本发明图1和图2所示实施例的流程。与图7所示的向生产卷写入数据的装置相比,不同之处在于,图8所示的向生产卷写入数据的装置还可以包括:拆分模块75、判断模块76、第一响应返回模块77、第二响应返回模块78和合并模块79。Fig. 8 is a schematic structural diagram of another embodiment of the device for writing data to the production volume according to the present invention. The device for writing data to the production volume in this embodiment can be used as a storage array or a part of the storage array to implement the present invention. The process flow of the embodiment shown in Figure 2. Compared with the device for writing data to the production volume shown in FIG. 7, the difference is that the device for writing data to the production volume shown in FIG. A response return module 77 , a second response return module 78 and a combination module 79 .

其中,拆分模块75,用于当上述生产卷中上述待写入数据的目标区域所覆盖的数据块中存在至少一个进行过写前拷贝的数据块时,根据上述进行过写前拷贝的数据块的数量、上述进行过写前拷贝的数据块的大小和上述目标区域的大小,将待写入数据拆分为一段待写入数据段,或者根据上述进行过写前拷贝的数据块的数量、上述进行过写前拷贝的数据块的大小、上述进行过写前拷贝的数据块在目标区域中的位置和上述目标区域的大小将待写入数据拆分为至少两段待写入数据段,使拆分后获得的至少两段待写入数据段形成两组,一组待写入数据段的目标区域只覆盖进行过写前拷贝的数据块,另一组待写入数据段的目标区域只覆盖未进行过写前拷贝的数据块。其中,该目标区域的大小即为待写入数据的长度。Wherein, the splitting module 75 is configured to, when there is at least one data block that is copied before overwriting in the data block covered by the target area of the data to be written in the above production volume, according to the data that is copied before overwriting The number of blocks, the size of the above-mentioned data blocks that are copied before overwriting, and the size of the above-mentioned target area, split the data to be written into a data segment to be written, or according to the above-mentioned number of data blocks that are copied before overwriting , the size of the above-mentioned data block copied before overwriting, the position of the above-mentioned data block copied before overwriting in the target area, and the size of the above-mentioned target area Split the data to be written into at least two data segments to be written , so that at least two data segments to be written after splitting are obtained into two groups. The target area of a group of data segments to be written only covers the data blocks copied before overwriting, and the target area of the other group of data segments to be written Regions only cover data blocks that have not been copy-before-written. Wherein, the size of the target area is the length of the data to be written.

判断模块76,用于判断至少两段待写入数据段中每段待写入数据段待写入的目标区域所覆盖的数据块是否进行过写前拷贝。A judging module 76, configured to judge whether the data block covered by the target area to be written in each of the at least two data segments to be written has been copied before writing.

本实施例中,确定模块72还可以当待写入数据段待写入的目标区域所覆盖的数据块未进行过写前拷贝时,根据上述待写入数据段的起始地址、长度和预先设定的存储粒度确定需要进行写前拷贝的数据块;然后生成模块73还可以对上述确定模块72确定的需要进行写前拷贝的数据块进行写前拷贝,并生成与上述数据块对应的映射标记;写入模块74还可以将上述待写入数据段中的数据写入进行写前拷贝之后的数据块;以及当待写入数据段待写入的目标区域所覆盖的数据块进行过写前拷贝时,将该待写入数据段中的数据写入该待写入数据段待写入的目标区域所覆盖的数据块。In this embodiment, the determining module 72 can also, when the data block covered by the target area of the data segment to be written has not been copied before writing, according to the start address, length and pre-set address of the data segment to be written The set storage granularity determines the data blocks that need to be copied before writing; then the generating module 73 can also perform copy-before-writing on the data blocks that need to be copied before writing determined by the above-mentioned determining module 72, and generate a mapping corresponding to the above-mentioned data blocks Marking; the writing module 74 can also write the data in the data segment to be written into the data block after the copy-before-write; and overwrite the data block covered by the target area to be written in the data segment During pre-copying, the data in the data segment to be written is written into the data block covered by the target area to be written in the data segment to be written.

第一响应返回模块77,用于在上述至少两段待写入数据段均写入成功之后,返回写操作成功响应;或者,在上述至少两段待写入数据段中至少一段待写入数据段写入失败之后,返回写操作失败响应。The first response returning module 77 is configured to return a write operation success response after the at least two data segments to be written are successfully written; or, at least one segment of the data to be written in the at least two data segments to be written After segment writing fails, return write operation failure response.

第二响应返回模块78,用于在将待写入数据成功写入进行写前拷贝之后的数据块之后,返回写操作成功响应;或者,在将待写入数据写入进行写前拷贝之后的数据块失败之后,返回写操作失败响应。The second response returning module 78 is used to return the write operation success response after the data to be written is successfully written to the data block after the copy before writing; or, after the data to be written is written to the copy before writing After the data block fails, a write operation failure response is returned.

合并模块79,用于对映射标记对应的数据块进行检测,将物理上连续的数据块对应的映射标记合并为一个映射标记。The merging module 79 is configured to detect the data block corresponding to the mapping mark, and merge the mapping marks corresponding to the physically continuous data blocks into one mapping mark.

上述向生产卷写入数据的装置可以实现动态调整映射标记对应的生产卷上实际数据块的大小,提高系统性能和节约资源池资源;并且上述实施例支持对连续的映射标记进行合并,从而可以减少内存资源的消耗,提升系统性能。The above-mentioned device for writing data to the production volume can dynamically adjust the size of the actual data block on the production volume corresponding to the mapping mark, improve system performance and save resource pool resources; and the above-mentioned embodiment supports the merging of continuous mapping marks, so that Reduce memory resource consumption and improve system performance.

本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。Those skilled in the art can understand that the drawing is only a schematic diagram of a preferred embodiment, and the modules or processes in the drawing are not necessarily necessary for implementing the present invention.

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。Those skilled in the art can understand that the modules in the device in the embodiment can be distributed in the device in the embodiment according to the description in the embodiment, or can be located in one or more devices different from the embodiment according to corresponding changes. The modules in the above embodiments can be combined into one module, and can also be further split into multiple sub-modules.

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: it can still be Modifications are made to the technical solutions described in the foregoing embodiments, or equivalent replacements are made to some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the various embodiments of the present invention.

Claims (8)

1. one kind writes the method for data to producing volume, it is characterized in that, comprising:
Receive data operation request, described data operation request is carried data to be written, and the start address of described data to be written and length;
Before the target area that produces data to be written described in the volume did not carry out writing during copy, according to start address, length and the predefined storage granularity of described data to be written determine needs write before the data block of copy;
When existence was carried out writing the data block of preceding copy in the data block that the target area of data to be written described in the described production volume covers, according to the described quantity of carrying out writing the preceding data block that copies, described carried out writing before the size of data block of copy and the size of described target area, described data to be written are split as one section data segment to be written, perhaps according to the described quantity of carrying out writing the preceding data block that copies, the described size of carrying out writing the preceding data block that copies, described carried out writing before the data block of copy in described target area the position and the described data to be written of big young pathbreaker of described target area be split as at least two sections data segments to be written, make at least two sections data segments to be written that split the back acquisition form two groups, the data block of copy before the target area of one group of data segment to be written only covers and carried out writing, the data block of copy before another target area of organizing data segment to be written only covers and do not carry out writing;
Described needs are write the data block of preceding copy and write preceding copy, and the generation map tag corresponding with described data block;
Described data to be written are write preceding copy data block afterwards.
2. method according to claim 1 is characterized in that, described start address according to described data to be written, length and predefined storage granularity determine that the data block that copies before needs are write comprises:
According to length and the predefined storage granularity of described data to be written, the size of the data block of copy before determining to write;
The size of the data block of copy before writing according to the start address of described data to be written and described needs, determine described needs write before the position of data block of copy.
3. method according to claim 1, it is characterized in that, described according to described carried out writing before copy data block quantity, described carried out writing before copy data block size, described carried out writing before the data block of copy position and the described data to be written of big young pathbreaker of described target area in described target area be split as after at least two sections data segments to be written, also comprise:
Judge whether the data block that the target area to be written of every section data segment to be written in described at least two sections data segments to be written covers carried out writing preceding copy;
The data block that covers for the target area to be written of every section data segment to be written in described at least two sections data segments to be written is the data segment to be written of copy before not carrying out writing, according to start address, length and the predefined storage granularity of every section data segment to be written in described at least two sections data segments to be written determine needs write before the data block of copy; The data block that the described needs of determining according to start address, length and the predefined storage granularity of every section data segment to be written in described at least two sections data segments to be written are write preceding copy is write preceding copy, and the generation map tag corresponding with described data block; Data block before data in every section data segment to be written in described at least two sections data segments to be written are write after the copy;
The data block that covers for the target area to be written of every section data segment to be written at least two sections data segments to be written is the data segment to be written of copy before carrying out writing, and the data in every section data segment to be written in described at least two sections data segments to be written are write the data block that the target area to be written of every section data segment to be written in described at least two sections data segments to be written covers.
4. according to any described method of claim 1-3, it is characterized in that, described with described data to be written write before the copy after data block after, also comprise:
Data block to the map tag correspondence detects, and the map tag of continuous data block correspondence is physically merged into a map tag.
5. one kind to producing the device that volume writes data, it is characterized in that, comprising:
Receiver module is used for receiving data operation request, and described data operation request is carried data to be written, and the start address of described data to be written and length;
Determination module when being used for before the target area of data to be written described in the described production volume did not carry out writing copy, is determined the data block that copies before needs are write according to start address, length and the predefined storage granularity of described data to be written;
Split module, when being used for the data block of copy before the data block existence that the target area of data to be written described in the described production volume covers was carried out writing, according to the described quantity of carrying out writing the preceding data block that copies, described carried out writing before the size of data block of copy and the size of described target area, described data to be written are split as one section data segment to be written, perhaps according to the described quantity of carrying out writing the preceding data block that copies, the described size of carrying out writing the preceding data block that copies, described carried out writing before the data block of copy in described target area the position and the described data to be written of big young pathbreaker of described target area be split as at least two sections data segments to be written, make at least two sections data segments to be written that split the back acquisition form two groups, the data block of copy before the target area of one group of data segment to be written only covers and carried out writing, the data block of copy before another target area of organizing data segment to be written only covers and do not carry out writing;
Generation module is used for that the needs that described determination module is determined are write the preceding data block that copies and writes preceding copy, and the generation map tag corresponding with described data block;
Writing module is used for the data to be written that described receiver module receives are write preceding copy data block afterwards.
6. device according to claim 5 is characterized in that,
Described determination module, concrete be used for according to the length of described data to be written and predefined storage granularity determine needs write before the size of data block of copy, and before writing according to the start address of described data to be written and described needs the size of the data block of copy determine described needs write before the position of data block of copy.
7. device according to claim 5 is characterized in that, also comprises:
Judge module, be used for to judge according to described carried out writing before copy data block quantity, described carried out writing before copy data block size, described carried out writing before the data block of copy after the described data to be written of big young pathbreaker of the position of described target area and described target area are split as at least two sections data segments to be written, whether the data block that the target area to be written of every section data segment to be written covers carried out writing preceding copy;
Described determination module, before the data block that also is used for covering when the target area to be written of every section data segment to be written of described at least two sections data segments to be written did not carry out writing during copy, determine the data block that copies before needs are write at least according to start address, length and the predefined storage granularity of every section data segment to be written in described two sections data segments to be written;
Described generation module, be used for that also the needs that described determination module is determined according to start address, length and the predefined storage granularity of every section data segment to be written of described two sections data segments to be written are at least write the preceding data block that copies and write preceding copy, and the generation map tag corresponding with described data block;
The said write module also is used for the data in every section data segment to be written of described at least two sections data segments to be written are write preceding copy data block afterwards; And the data block that covers when the target area to be written of every section data segment to be written in described at least two sections data segments to be written carried out writing before when copy, the data in every section data segment to be written in described at least two sections data segments to be written are write the data block that the target area to be written of every section data segment to be written in described at least two sections data segments to be written covers.
8. according to any described device of claim 5-7, it is characterized in that, also comprise:
Merge module, be used for the data block of map tag correspondence is detected, the map tag of continuous data block correspondence is physically merged into a map tag.
CN201110255006.XA 2011-08-31 2011-08-31 Method and apparatus for writing data to a production volume Expired - Fee Related CN102289510B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110255006.XA CN102289510B (en) 2011-08-31 2011-08-31 Method and apparatus for writing data to a production volume
PCT/CN2012/078662 WO2013029434A1 (en) 2011-08-31 2012-07-14 Method and device for writing data into production volume

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110255006.XA CN102289510B (en) 2011-08-31 2011-08-31 Method and apparatus for writing data to a production volume

Publications (2)

Publication Number Publication Date
CN102289510A CN102289510A (en) 2011-12-21
CN102289510B true CN102289510B (en) 2013-10-09

Family

ID=45335936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110255006.XA Expired - Fee Related CN102289510B (en) 2011-08-31 2011-08-31 Method and apparatus for writing data to a production volume

Country Status (2)

Country Link
CN (1) CN102289510B (en)
WO (1) WO2013029434A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289510B (en) * 2011-08-31 2013-10-09 华为数字技术(成都)有限公司 Method and apparatus for writing data to a production volume
CN102650931B (en) * 2012-04-01 2015-07-08 华为技术有限公司 Method and system for writing data
CN103842954B (en) * 2013-12-05 2017-02-15 华为技术有限公司 Data processing method, device, system and server in a storage system
CN103955413A (en) * 2014-04-11 2014-07-30 重庆纳跃信息科技有限公司 File snapshot reduction method based on file local modification
CN104407933B (en) * 2014-10-31 2018-10-02 华为技术有限公司 A kind of backup method and device of data
CN104407936B (en) * 2014-11-18 2017-08-18 华为数字技术(成都)有限公司 A kind of data snapshot method and device
CN107357928B (en) * 2017-07-26 2020-09-18 苏州浪潮智能科技有限公司 A method and system for implementing storage snapshots
CN107608825A (en) * 2017-09-19 2018-01-19 杭州宏杉科技股份有限公司 A kind of method and device of cloud backup snapshot data
CN111399774B (en) * 2020-03-09 2021-09-14 星辰天合(北京)数据科技有限公司 Data processing method and device based on snapshot under distributed storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206961B1 (en) * 2002-09-30 2007-04-17 Emc Corporation Preserving snapshots during disk-based restore
CN101477447A (en) * 2009-01-21 2009-07-08 杭州华三通信技术有限公司 Disk snap method and apparatus
CN101482838A (en) * 2009-02-06 2009-07-15 杭州华三通信技术有限公司 Data write-in method and apparatus based on copy-on-write
CN101840362A (en) * 2009-10-28 2010-09-22 创新科存储技术有限公司 Method and device for achieving copy-on-write snapshot

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819543A (en) * 2010-02-01 2010-09-01 成都市华为赛门铁克科技有限公司 Snapshot data processing method, system and storage device
CN102289510B (en) * 2011-08-31 2013-10-09 华为数字技术(成都)有限公司 Method and apparatus for writing data to a production volume

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206961B1 (en) * 2002-09-30 2007-04-17 Emc Corporation Preserving snapshots during disk-based restore
CN101477447A (en) * 2009-01-21 2009-07-08 杭州华三通信技术有限公司 Disk snap method and apparatus
CN101482838A (en) * 2009-02-06 2009-07-15 杭州华三通信技术有限公司 Data write-in method and apparatus based on copy-on-write
CN101840362A (en) * 2009-10-28 2010-09-22 创新科存储技术有限公司 Method and device for achieving copy-on-write snapshot

Also Published As

Publication number Publication date
CN102289510A (en) 2011-12-21
WO2013029434A1 (en) 2013-03-07

Similar Documents

Publication Publication Date Title
CN102289510B (en) Method and apparatus for writing data to a production volume
US11093162B2 (en) Method and apparatus for deleting cascaded snapshot
US11960749B2 (en) Data migration method, host, and solid state disk
CN103034566B (en) Method and device for restoring virtual machine
CN108460045B (en) Snapshot processing method and distributed block storage system
CN102929748B (en) Data back up method and device
CN104360914B (en) Incremental snapshot method and apparatus
CN104520802B (en) Data sending method, data receiving method and storage device
CN103814360A (en) Data replication method and storage system
CN103412822B (en) Operation Nonvolatile memory and the method and relevant apparatus of data manipulation
CN111158858B (en) Cloning method and device of virtual machine and computer readable storage medium
CN103488431A (en) Data-writing method and storage device
CN112783449A (en) Data migration method and device
CN106484313A (en) Data message backup method, data back up method and device
CN106528338A (en) A remote data replication method, storage device and storage system
CN103473258A (en) Cloud storage file system
CN106383667B (en) The method and apparatus that LUN is migrated in service operation
CN107577558A (en) The Snapshot Method and device of a kind of cloud storage
JP2006268139A (en) Data reproduction device, method and program and storing system
US20230168841A1 (en) Synchronous write method and device, storage system and electronic device
CN107402802A (en) A kind of video monitoring storage system based on virtual machine
JP2012216025A (en) Data duplication device, data duplication control method, and data duplication control program
CN102375696A (en) Data storage system and data access method using virtual disk
CN105138429B (en) A kind of Copy on write Snapshot Method and system
KR20180105877A (en) Apparatus for memory backup and recovery in in-memory virtual desktop system and method for the same

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD. TO: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220831

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131009