CN104050200B - 用于数据拷贝的方法和装置 - Google Patents
用于数据拷贝的方法和装置 Download PDFInfo
- Publication number
- CN104050200B CN104050200B CN201310095686.2A CN201310095686A CN104050200B CN 104050200 B CN104050200 B CN 104050200B CN 201310095686 A CN201310095686 A CN 201310095686A CN 104050200 B CN104050200 B CN 104050200B
- Authority
- CN
- China
- Prior art keywords
- data
- size
- copy
- block
- data source
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
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)
- Computer Security & Cryptography (AREA)
Abstract
本发明的各实施方式涉及用于数据拷贝的方法和装置。具体地,在本发明的一个实施方式中,提供了一种用于数据拷贝的方法,包括:获取将被执行数据拷贝的数据源;确定用于划分数据源所依据的块单位的大小P;基于块单位的大小P,将数据源划分为至少一个数据块;以及以至少一个数据块为基本单位,从数据源向数据目标拷贝数据;其中块单位的大小P是由底层架构支持的读写单元的大小R的整数倍。在本发明的一个实施方式中,提供了一种用于数据拷贝的装置。
Description
技术领域
本发明的各实施方式涉及数据处理,更具体地,涉及用于在数据源(data source)和数据目标(data target)之间进行数据拷贝(datacopy)的方法和装置。
背景技术
随着计算机硬件技术以及软件技术的发展,诸如硬盘等存储设备已经能够向广大用户提供越来越大的数据存储能力,并且对于这些存储设备的访问速度也有了极大的提高。数据拷贝和数据迁移是在对各种应用的使用期间经常会涉及到的一种操作,该操作可以从数据源向数据目标执行拷贝操作。通常而言,数据拷贝是指在完成拷贝后仍然保留数据源处的数据,而数据迁移则可以表示在完成拷贝之后删除数据源处的数据。在本发明的上下文中,将仅以数据拷贝为示例说明本发明的技术方案的原理。
目前的各种应用所涉及到的数据量越来越大,例如可以达到数十G甚至更多;另一方面,执行数据拷贝的频率也存在逐渐提高的趋势。例如,银行等企业的数据库系统可能会定期(例如,每天、每小时、甚至更高的频率)进行数据备份,因而数据拷贝的效率已经成为影响计算机系统运行效率的一个重要因素。
尽管目前已经开发出使用诸如元数据(metadata)和比特图(bitmap)等记录元素集(record element set),来记录待拷贝数据源的当前版本与上一次备份版本之间的差异的技术方案,然而这些技术方案并不总是能够充分利用各种资源,并且还可能会由于将待拷贝数据划分为大小不适合的数据块,而造成经由拷贝缓存(copybuffer)进行拷贝的次数的增加、和/或对硬件设备的读写次数增加,进而造成数据拷贝效率低下等问题。
发明内容
因而,期望能够开发并实现一种能够提高数据拷贝效率的技术方案,并且期望该技术方案能够在尽量不改变现有数据存储装置的硬件配置的情况下实现。另外,还期望该技术方案能够充分考虑不同底层存储系统的差异,以便从减少对硬件存储设备的读写操作的方面,进一步提高数据拷贝的效率。
在本发明的一个实施方式中,提供了一种用于数据拷贝的方法,包括:获取将被执行数据拷贝的数据源;确定用于划分数据源所依据的块单位(block extent)的大小P;基于块单位的大小P,将数据源划分为至少一个数据块(data block);以及以至少一个数据块为基本单位,从数据源向数据目标拷贝数据;其中块单位的大小P是由底层架构支持的读写单元的大小R的整数倍。
在本发明的一个实施方式中,读写单元是磁盘中的数据扇区或者独立冗余磁盘阵列(Redundant Array of Independent Disks,RAID)中的数据trunk。
在本发明的一个实施方式中,块单位的大小P是用于在从数据源向数据目标拷贝数据期间使用的拷贝缓存的大小B的整数倍。
在本发明的一个实施方式中,提供了一种用于数据拷贝的装置,包括:获取模块,配置用于获取将被执行数据拷贝的数据源;确定模块,配置用于确定用于划分数据源所依据的块单位的大小P;划分模块,配置用于基于块单位的大小P,将数据源划分为至少一个数据块;以及拷贝模块,配置用于以至少一个数据块为基本单位,从数据源向数据目标拷贝数据;其中块单位的大小P是由底层架构支持的读写单元的大小R的整数倍。
在本发明的一个实施方式中,读写单元是磁盘中的数据扇区或者独立冗余磁盘阵列中的数据trunk。
在本发明的一个实施方式中,块单位的大小P是用于在从数据源向数据目标拷贝数据期间使用的拷贝缓存的大小B的整数倍。
可以在现有的硬件架构下实现根据本发明的各实施方式所提供的、用于进行数据拷贝的方法和装置,并且本发明所提供的方法和装置可以更加充分地利用拷贝缓存以及底层读写单元的存储空间,进而降低在一次数据拷贝期间涉及经由拷贝缓存进行拷贝的次数以及读写操作的次数。
附图说明
结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
图1示意性示出了适于实现本发明实施方式的示例性计算系统的框图;
图2A和图2B分别示意性示出了根据一个解决方案的、在数据拷贝期间的数据源和记录元素集的示意图;
图3示意性示出了根据一个解决方案的在数据拷贝期间涉及的不同基本单位的示意图;
图4示意性示出了根据本发明的一个实施方式的用于数据拷贝的方法的流程图;
图5示意性示出了根据本发明的一个实施方式的数据记录元素集的使用状况的示意图;以及
图6示意性示出了根据本发明的一个实施方式的用于数据拷贝的方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和触摸屏显示器114。在这些设备中,与系统总线104耦合的有CPU101、RAM102、ROM103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及触摸屏显示器114与显示控制器109耦合。应当理解,图1所示的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施方式中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
还应当注意,尽管图1中以物理计算机为示例示出了可以执行本发明的计算机系统,由于数据拷贝操作通常是在较高的抽象层上进行,本发明并不关心是在真实的物理机还是在虚拟机上实现数据拷贝操作。具体地,当在虚拟机上实现本发明时,虚拟机所在的宿主机可以提供如参见下文所述的具体操作。
图2A和图2B分别示意性示出了根据一个解决方案的、在数据拷贝期间的数据源和记录元素集的示意图200A和200B。如图2A所示,数据源200A是指待拷贝的数据,例如当用户期望拷贝整个硬盘(例如,250G)中的数据时,数据源200A可以表示该硬盘中的250G的数据。根据数据拷贝技术的一个解决方案,可以将数据源200A划分为多个数据块210A,并且设置与数据源200A相对应的记录元素集200B(如图2B所示),来记录数据源200A中数据的更新状况。在一个技术方案中,记录元素集200B可以具有与数据源200A中的数据块210A的数量(例如,1024个)相同数量的记录元素210B。记录元素集200B中的每个记录元素210B可以分别用于指示数据源200A中的每个数据块210A的内容是否被更新。例如,可以利用一个比特来表示一个记录元素210B,此时记录元素集200B的大小为1024比特;备选地,还可以采用其他长度来表示记录元素。
可以基于不同方法来定义每个数据块的大小以及记录元素集中的记录元素的数量。记录元素集可以记录数据源和数据目标之间的差异,根据这些记录元素集来拷贝数据,并记录数据拷贝、迁移的进度。通常,记录元素集中记录元素的数目是有限的并且是固定的,存在不同的设计方法来确定单个记录元素代表的数据块长度。
每个数据块可以与每个记录元素一一对应,因而可以由记录元素集200B来指示数据源200A中的哪个(哪些)数据块已经被更新,并且还可以指示数据拷贝的进度。例如,在首次执行数据拷贝时,可以将数据源200A的全部数据块210A拷贝到数据目标;继而,在后续执行数据拷贝时,根据记录元素集200B中的各个记录元素210B是否被标记,可以仅拷贝那些已经被更新的数据块,因而可以大大降低数据拷贝期间的工作负载。
在数据拷贝期间将会涉及到多种数据单元,在下文中将首先介绍各个术语的含义:
1)数据源是指有待执行数据拷贝的数据,例如,可以以符号O来表示数据源的大小;
2)块单位是指将数据源划分成数据块时所依据的尺度,例如,可以以符号P来表示块单位的大小;
3)记录元素集是指用于记录数据源中的各个数据块是否被更新的数据结构,记录元素集中的记录元素一一对应于数据源中的数据块,在此将记录元素集中记录元素的最大数目称为记录元素集的长度,例如,以符号M表示;
4)拷贝缓存是指在执行数据拷贝期间用于在数据源和数据目标之间中转数据的临时存储单元,例如,可以以符号B表示拷贝缓存的大小;
5)读写单元是指在执行硬件拷贝期间硬件所支持的最小读写单位,例如,在常规的硬盘中的最小读写单位可以是扇区,而在独立冗余硬盘阵列中的最小读写单位可以是数据条带(strip)中的块(trunk),例如,可以以符号R来表示读写单元的大小。
根据一个解决方案,可以采用长度平均方法,即将数据源平均划分为多个数据块,并且该数据块的数量与记录元素集的长度相等。此时,块单位的大小此处的取整符号表示向上取整(ceiling)函数。该方法可以使用记录元素集中的每一个记录元素,然而由于数据源的长度可能并不是块单位大小P的整数倍,因而可能造成块单位的大小P与系统中其他数据单元的大小不对齐(unaligned)的情况。
在本发明的上下文中,可以将数值A不是数值B的整数倍的情况称为A与B“不对齐”。例如,假设块单位的大小P为257kB,而拷贝缓存的大小B为128kB,则P与B不能对齐。
图3示意性示出了根据一个解决方案的在数据拷贝期间涉及的不同基本单位的示意图300。现在将参见图3详细说明按照图2所示的长度平均方法可能导致的“不对齐”的具体含义。例如,当块单位的大小P不是拷贝缓存的大小B的整数倍时,在每次经由拷贝缓存来进行数据拷贝时,不能将数据块310A恰好拆分为拷贝缓存330A的整数倍个分段;并且尽管数据块310A中的剩余部分(即最后一个分段)的大小并不足够填充一个拷贝缓存的大小B,也需要在一个单独轮次中经由拷贝缓存330A来执行拷贝。这种不对齐的情况会降低数据拷贝的效率。
例如,在上文所述的块单位的大小P为257kB,而拷贝缓存的大小B为128kB的情况下,按照P划分的每个数据块将被拆分为3个分段,其中第一分段和第二分段均为128kB而第三个分段仅为1kB。此时仍需经由拷贝缓存执行三次拷贝,才能完成对每个数据块的数据拷贝。
另一方面,在硬盘等存储介质上物理地执行数据拷贝操作时,对存储介质进行读取操作的最小单位并不一定是拷贝缓存的大小B,而是通常可以小于拷贝缓存的大小B。这样,还有可能需要将拷贝缓存进行进一步的拆分。例如,在RAID的情况下,读写单位是数据条带中的trunk(例如64kB),如果拷贝缓存330A的大小B是128kB而读写单元320A的大小R是64kB,则需要进一步的拆分。此外,当写入的数据不足一个trunk时,需要首先执行读取整个trunk的动作,在合并后半部分数据后才最终写入磁盘,此时的读操作是一个额外的动作,所以当写入数据的起始地址或者长度不能与trunk对齐时,将会造成一定的性能损失。
可见,如果数据源的大小O没有与读写单元的大小R和拷贝缓存的大小B对齐,则根据上文的长度平均方法得到的块单元的大小也不能与R和B对齐。当拷贝数据时,将会出现拷贝缓存的浪费和额外的读写操作,进而造成较大的性能损失。因而,采用长度平均方法求解块单位的长度P,并基于这一长度P所执行数据拷贝的运行效率并不理想。
鉴于上述技术方案中的缺陷,本发明提出了一种用于数据拷贝的方法,包括:获取将被执行数据拷贝的数据源;确定用于划分数据源所依据的块单位的大小P;基于块单位的大小P,将数据源划分为至少一个数据块;以及以至少一个数据块为基本单位,从数据源向数据目标拷贝数据;其中块单位的大小P是由底层架构支持的读写单元的大小R的整数倍。
图4示意性示出了根据本发明的一个实施方式的用于数据拷贝的方法的流程图400。具体地,在步骤402中,获取将被执行数据拷贝的数据源。在此数据源是有待执行数据拷贝的数据,例如,可以包括整个硬盘中的全部数据。
在步骤S404中,确定用于划分数据源所依据的块单位的大小P,其中块单位的大小P是由底层架构支持的读写单元的大小R的整数倍。应当注意,在执行数据拷贝期间,由于记录元素集中的记录元素已经标识了哪个或者哪些数据块中的数据已经被更新,因而在数据拷贝期间仅需拷贝被标识为已更新的数据块即可。尽管从较高级别看来数据块是执行数据拷贝的基本单位,然而在物理上的执行拷贝的最小单元是底层架构所支持的读写单元,因而,读写单元的大小R最终决定了对一个数据块的拷贝需要对存储介质执行多少次读写操作。
通过将决单位的大小P设置为读写单元的大小R的整数倍,可以将每个数据块与读写单元进行对齐,因而可以更为充分地利用读写单元。换言之,在每次读写操作时,可以利用读写单元中的全部空间,并尽量避免额外的读写操作。例如,假设读写单元的大小为64kB时,每次读写操作的数据可以是64kB。
在步骤S406中,基于块单位的大小P,将数据源划分为至少一个数据块。在确定划分尺度P之后,可以按照块单位的大小P来将数据源划分为多个数据块,例如,假设数据源的大小O为250G而块单位的大小P为0.25G,则可以将整个数据源划分为1000个数据块。
应当注意,本发明的一个实施方式的方法与采用现有的长度平均方法进行数据拷贝操作的一个区别在于:在本发明的实施方式中,首先确定块单位的大小P,继而基于数据源的大小O和块单位的大小P来确定将数据源划分为多少个数据块;然而在上文所述的长度平均方法中,已经确定了将数据源划分为M个数据块(即,记录元素集的长度M),继而基于数据源的大小O和数据块的数量M,来计算块单位的大小P。尽管长度平均方法简单并且易于实现,然而以此方式获得的块单位的大小P经常不是读写单元的大小R的整数倍,因而会导致额外的读写操作。
在步骤S408中,以至少一个数据块为基本单位,从数据源向数据目标拷贝数据。基于上述步骤S402-S406所得的每个数据块的大小都是读写单元的大小R的整数倍,因而可以充分利用读写单元的全部空间来执行数据拷贝操作,并且可以最大限度地降低针对存储介质执行的读写操作的次数。
在本发明的一个实施方式中,读写单元是磁盘中的数据扇区或者独立冗余磁盘阵列中的数据trunk。应当注意,本发明的各个实施方式可以充分考虑执行数据拷贝的计算设备的底层架构所支持的读写单元的差异,以便针对不同的底层架构实现高效的数据拷贝。例如,普通的磁盘以扇区为基本读写单位,此时的最小读写单位例如是512B;又例如RAID以条带中的trunk为基本读写单位,此时的最小读写单位例如是64kB。
RAID是一种更为可靠的数据存储解决方案,其基本思想是将多个磁盘组合为一个硬盘阵列,以提供具有更高的容量或是可靠性。根据选择的版本不同,RAID单个磁盘具有更多优势,例如增强数据集成度,增强容错功能,增加处理量或容量等。在RAID中,当写入的数据不足一个trunk时,将需要额外的读操作并造成数据拷贝的效率有所下降。
本发明的各个实施方式,通过考虑普通磁盘和RAID中所支持的读写单元的不同类型,可以针对不同类型的底层架构提供高效的数据拷贝操作。
在本发明的一个实施方式中,块单位的大小P是用于在从数据源向数据目标拷贝数据期间使用的拷贝缓存的大小B的整数倍。
拷贝缓存是在数据源和数据目标之间中转数据的临时存储空间,并且数据拷贝操作是由按照一定步长执行的多个单次拷贝(每次拷贝的数据大小为拷贝缓存的大小,例如128kB)来完成的,当数据块的长度超过拷贝缓存的大小时,需要将数据块拆分为多次拷贝来执行。如果数据块不能和拷贝缓存对齐,则最后一次拷贝实际上无法完全利用整个拷贝缓存的长度,形成一定程度的浪费。
在本发明的实施方式中,通过将块单位的大小P设置为拷贝缓存的大小B的整数倍,可以将每个数据块与拷贝缓存对齐,进而在每次拷贝中都可以充分利用整个拷贝缓存的大小。
在本发明的一个实施方式中,块单位的大小P是读写单元的大小R和拷贝缓存的大小B的最小公倍数的整数倍。为了使得块单位的大小P能够分别与读写单元的大小R和拷贝缓存的大小B相对齐,可以首先计算读写单元的大小R和拷贝缓存的大小B的最小公倍数N,继而通过将块单位的大小P设置为N的整数倍,可以方便、快速地确定块单位的大小P。
在本发明的一个实施方式中,块单位的大小P使得划分所得的数据块的数量小于或者等于记录元素集中元素的数量M,其中该记录元素集中的一个元素用于标记一个数据块是否被修改。
应当注意,在本发明的各个实施方式中,尽管首先确定块单位的大小P,继而基于数据源的大小O和块单位的大小P来确定将数据源划分为多少个数据块;然而应当注意,类似于现有的数据拷贝方法,本发明的各个实施方式同样采用记录元素集中的各个记录元素来指示每个数据块的更新状况,因而,在本发明的实施方式中,将数据源划分所得的数据块的数目应当小于或者等于记录元素集中的记录元素的数量M;否则,将不能在数据块和记录元素之间维护一一对应的关系,进而导致记录元素集中的各个元素不能指示数据源中的每个数据块的更新状态。
图5示意性示出了根据本发明的一个实施方式的数据记录元素集的使用状况的示意图500。在如图5所示的实施方式中,不必利用记录元素集500中的全部记录元素510B。例如,可以仅利用记录元素集500中的一部分记录元素,并且可以将其余的记录元素空置(例如,如图5中以阴影示出的记录元素所示)。
在本发明的一个实施方式中,确定用于划分数据源所依据的块单位的大小P包括:确定使得数据块的数量小于或者等于记录元素集中元素的数量M的块单位的大小P中的最小值。
应当注意,在上文中参见图5示意性示出了仅使用记录元素集500中的一部分记录元素的示例,然而应当注意,在数据源大小O保持不变的情况下,块单位的大小P反比于所使用的记录元素的数量,因而期望尽可能地利用记录元素集中的全部数据元素,以便降低执行数据拷贝时的粒度(即,降低块单位的大小P)。
例如,作为一个极端示例,假设数据源的大小为250G,此时如果仅利用记录元素集中的一个记录元素来指示数据块(即,将整个数据源作为一个数据块)的更新状况,尽管此时数据块的大小能够满足上文所述的两个对齐关系,然而此时的记录元素集中的记录元素的功能已经变得毫无用处。换言之,只要数据块(即,整个数据源)内的数据存在任何更新,则必须要针对整个数据源执行数据拷贝操作。
因而,优选地,应当更充分地利用记录元素集中的每个记录元素,即,需要寻找满足如下三个条件的块单位的大小P中的最小值:(1)P应当作为读写单元的大小R的整数倍;(2)P应当作为拷贝缓存的大小B的整数倍;以及(3)依据P划分所得的数据块的数量应当小于或者等于记灵元素集中元素的数量M。
在本发明的一个实施方式中,块单位的大小在此符号表示向下取整(floor)函数,并且其中N是拷贝缓存的大小B和读写单元的大小R的最小公倍数。
采用上文所述的计算公式,可以方便快速地计算得出满足上文所述的三个条件的块单位的大小P的最小值,以便在减少针对存储介质的读取操作的同时,尽可能地充分利用记录元素集中的每个记录元素。此时,在较高级别所观察到的执行数据拷贝的基本单位的大小(即,块单位的大小P)被最小化,因而可以避免上文所述的极端情况。
在本发明的一个实施方式中,以至少一个数据块为基本单位,从数据源向数据目标拷贝数据进一步包括:响应于记录元素集中的元素被标记,将数据源中与被标记元素相关联的数据块拷贝至数据目标。在已经将数据源划分为多个数据块之后,可以仅针对其中内容已经被更新的那些数据块执行数据拷贝操作,而对于其中内容并为被更新的数据块则不执行进一步的操作。
在本发明的一个实施方式中,以至少一个数据块为基本单位,从数据源向数据目标拷贝数据包括:响应于至少一个数据块中的一数据块内的数据被修改,将记录元素集中与数据块相关联的元素进行标记。应当注意,在此实施方式中,记录元素集中的记录元素是响应于与该记录元素相对应的数据块内的数据被修改而标记的。
图6示意性示出了根据本发明的一个实施方式的用于数据拷贝的方法的流程图600。具体地,提供了一种用于数据拷贝的装置,包括:获取模块610,配置用于获取将被执行数据拷贝的数据源;确定模块620,配置用于确定用于划分数据源所依据的块单位的大小P;划分模块630,配置用于基于块单位的大小P,将数据源划分为至少一个数据块;以及拷贝模块640,配置用于以至少一个数据块为基本单位,从数据源向数据目标拷贝数据;其中块单位的大小P是由底层架构支持的读写单元的大小R的整数倍。
在本发明的一个实施方式中,读写单元是磁盘中的数据扇区或者独立冗余磁盘阵列中的数据trunk。
在本发明的一个实施方式中,块单位的大小P是用于在从数据源向数据目标拷贝数据期间使用的拷贝缓存的大小B的整数倍。
在本发明的一个实施方式中,块单位的大小P是读写单元的大小R和拷贝缓存的大小B的最小公倍数的整数倍。
在本发明的一个实施方式中,块单位的大小P使得数据块的数量小于或者等于记录元素集中元素的数量M,记录元素集中的一个元素用于标记一个数据块是否被修改。
在本发明的一个实施方式中,确定模块620包括:第一确定模块,配置用于确定使得划分所得的数据块的数量小于或者等于记录元素集中元素的数量M的块单位的大小P中的最小值。
在本发明的一个实施方式中,块单位的大小其中N是拷贝缓存的大小B和读写单元的大小R的最小公倍数。
在本发明的一个实施方式中,拷贝模块640包括:第一拷贝模块,配置用于响应于记录元素集中的元素被标记,将数据源中与被标记元素相关联的数据块拷贝至数据目标。
在本发明的一个实施方式中,拷贝模块640进一步包括:标记模块,配置用于响应于至少一个数据块中的一数据块内的数据被修改,将记录元素集中与数据块相关联的元素进行标记。
通过采用如本发明中各个实施方式所述的方法和装置,可以克服现有技术中的长度平均方法所得的块单位的大小O不能与拷贝缓存的大小B和读写单位的大小R相对齐、进而造成过多拷贝次数和额外读写操作的缺陷,进而可以提高数据拷贝操作的效率。采用本发明的各个实施方式,通过将块单位的大小O设置为拷贝缓存的大小B和读写单位的大小R的整数倍,可以确保在每次单独的拷贝期间都能充分利用拷贝缓存的容量,并且确保针对存储介质的每次读写操作都有效地执行,以便提高数据拷贝的效率。
附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
Claims (8)
1.一种用于数据拷贝的方法,包括:
获取将被执行数据拷贝的数据源;
确定用于划分所述数据源所依据的块单位的大小P;
基于所述块单位的大小P,将所述数据源划分为至少一个数据块;以及
以所述至少一个数据块为基本单位,从所述数据源向数据目标拷贝数据;
其中所述块单位的大小P是由底层架构支持的读写单元的大小R的整数倍;
其中所述块单位的大小P是用于在从所述数据源向所述数据目标拷贝数据期间使用的拷贝缓存的大小B的整数倍;
其中所述块单位的大小P是所述读写单元的大小R和所述拷贝缓存的大小B的最小公倍数的整数倍;
其中所述块单位的大小P使得划分所得的所述数据块的数量小于或者等于记录元素集中元素的数量M,所述记录元素集中的一个元素用于标记一个数据块是否被修改;
其中确定用于划分所述数据源所依据的块单位的大小P包括:
确定使得所述数据块的数量小于或者等于记录元素集中元素的数量M的所述块单位的大小P中的最小值;以及
其中所述块单位的大小其中N是所述拷贝缓存的大小B和所述读写单元的大小R的最小公倍数,O是数据源的大小。
2.根据权利要求1所述的方法,其中所述读写单元是磁盘中的数据扇区或者独立冗余磁盘阵列中的数据trunk。
3.根据权利要求1所述的方法,其中以所述至少一个数据块为基本单位,从所述数据源向数据目标拷贝数据进一步包括:
响应于所述记录元素集中的元素被标记,将数据源中与所述被标记元素相关联的数据块拷贝至数据目标。
4.根据权利要求3所述的方法,其中以所述至少一个数据块为基本单位,从所述数据源向数据目标拷贝数据包括:
响应于所述至少一个数据块中的一数据块内的数据被修改,将所述记录元素集中与所述数据块相关联的元素进行标记。
5.一种用于数据拷贝的装置,包括:
获取模块,配置用于获取将被执行数据拷贝的数据源;
确定模块,配置用于确定用于划分所述数据源所依据的块单位的大小P;
划分模块,配置用于基于所述块单位的大小P,将所述数据源划分为至少一个数据块;以及
拷贝模块,配置用于以所述至少一个数据块为基本单位,从所述数据源向数据目标拷贝数据;
其中所述块单位的大小P是由底层架构支持的读写单元的大小R的整数倍;
其中所述块单位的大小P是用于在从所述数据源向所述数据目标拷贝数据期间使用的拷贝缓存的大小B的整数倍;
其中所述块单位的大小P是所述读写单元的大小R和所述拷贝缓存的大小B的最小公倍数的整数倍;
其中所述块单位的大小P使得划分所得的所述数据块的数量小于或者等于记录元素集中元素的数量M,所述记录元素集中的一个元素用于标记一个数据块是否被修改;
其中所述确定模块包括:
第一确定模块,配置用于确定使得所述数据块的数量小于或者等于记录元素集中元素的数量M的所述块单位的大小P中的最小值;以及
其中所述块单位的大小其中N是所述拷贝缓存的大小B和所述读写单元的大小R的最小公倍数,O是数据源的大小。
6.根据权利要求5所述的装置,其中所述读写单元是磁盘中的数据扇区或者独立冗余磁盘阵列中的数据trunk。
7.根据权利要求6所述的装置,其中所述拷贝模块包括:
第一拷贝模块,配置用于响应于所述记录元素集中的元素被标记,将数据源中与所述被标记元素相关联的数据块拷贝至数据目标。
8.根据权利要求7所述的装置,其中所述拷贝模块进一步包括:
标记模块,配置用于响应于所述至少一个数据块中的一数据块内的数据被修改,将所述记录元素集中与所述数据块相关联的元素进行标记。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310095686.2A CN104050200B (zh) | 2013-03-15 | 2013-03-15 | 用于数据拷贝的方法和装置 |
US14/211,546 US9547456B2 (en) | 2013-03-15 | 2014-03-14 | Method and apparatus for efficient data copying and data migration |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310095686.2A CN104050200B (zh) | 2013-03-15 | 2013-03-15 | 用于数据拷贝的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104050200A CN104050200A (zh) | 2014-09-17 |
CN104050200B true CN104050200B (zh) | 2017-12-08 |
Family
ID=51503051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310095686.2A Active CN104050200B (zh) | 2013-03-15 | 2013-03-15 | 用于数据拷贝的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9547456B2 (zh) |
CN (1) | CN104050200B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360953B (zh) * | 2014-10-16 | 2018-01-23 | 华为技术有限公司 | 数据拷贝方法及装置 |
CN105160045B (zh) * | 2015-10-29 | 2019-06-18 | 小米科技有限责任公司 | 数据拷贝方法及装置 |
CN107113324B (zh) * | 2015-11-28 | 2020-08-14 | 华为技术有限公司 | 数据备份装置及方法、系统 |
CN106406763A (zh) * | 2016-09-21 | 2017-02-15 | 郑州云海信息技术有限公司 | 一种后台拷贝方法及装置 |
US10037156B1 (en) * | 2016-09-30 | 2018-07-31 | EMC IP Holding Company LLC | Techniques for converging metrics for file- and block-based VVols |
US10795836B2 (en) | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
CN110888606A (zh) * | 2019-12-23 | 2020-03-17 | 潍柴动力股份有限公司 | 刷写系统及发动机 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1629817A (zh) * | 2003-12-17 | 2005-06-22 | 国际商业机器公司 | 复制设备、复制方法和块标识数据获取方法 |
CN101119278A (zh) * | 2007-09-14 | 2008-02-06 | 广东威创日新电子有限公司 | 一种处理海量数据的方法及系统 |
CN101140536A (zh) * | 2007-05-21 | 2008-03-12 | 中兴通讯股份有限公司 | 一种支持级联快照的快照系统及其快照处理方法 |
CN102142032A (zh) * | 2011-03-28 | 2011-08-03 | 中国人民解放军国防科学技术大学 | 一种分布式文件系统的数据读写方法及系统 |
CN102314476A (zh) * | 2010-06-30 | 2012-01-11 | 索尼公司 | 复制装置、复制方法、存储器介质和程序 |
CN103294405A (zh) * | 2012-03-02 | 2013-09-11 | 联想(北京)有限公司 | 数据读写方法和电子设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11194899A (ja) * | 1997-12-26 | 1999-07-21 | Toshiba Corp | ディスク記憶システム及び同システムに適用するデータ更新方法 |
US6651147B2 (en) * | 2001-05-08 | 2003-11-18 | International Business Machines Corporation | Data placement and allocation using virtual contiguity |
US7353299B2 (en) * | 2003-05-29 | 2008-04-01 | International Business Machines Corporation | Method and apparatus for managing autonomous third party data transfers |
US7222135B2 (en) * | 2003-12-29 | 2007-05-22 | Intel Corporation | Method, system, and program for managing data migration |
US7574560B2 (en) * | 2006-01-03 | 2009-08-11 | Emc Corporation | Methods, systems, and computer program products for dynamic mapping of logical units in a redundant array of inexpensive disks (RAID) environment |
US7702877B2 (en) * | 2006-12-27 | 2010-04-20 | Arris Group | RAID stripe layout scheme |
US8850113B2 (en) * | 2010-02-27 | 2014-09-30 | Cleversafe, Inc. | Data migration between a raid memory and a dispersed storage network memory |
CN101968795B (zh) * | 2010-09-03 | 2012-05-09 | 清华大学 | 一种数据块长度可变的文件系统缓存方法 |
US8918607B2 (en) * | 2010-11-19 | 2014-12-23 | International Business Machines Corporation | Data archiving using data compression of a flash copy |
KR101854214B1 (ko) * | 2011-04-27 | 2018-05-03 | 시게이트 테크놀로지 엘엘씨 | 라이트 방법 및 그 방법을 이용하는 저장 장치 |
-
2013
- 2013-03-15 CN CN201310095686.2A patent/CN104050200B/zh active Active
-
2014
- 2014-03-14 US US14/211,546 patent/US9547456B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1629817A (zh) * | 2003-12-17 | 2005-06-22 | 国际商业机器公司 | 复制设备、复制方法和块标识数据获取方法 |
CN101140536A (zh) * | 2007-05-21 | 2008-03-12 | 中兴通讯股份有限公司 | 一种支持级联快照的快照系统及其快照处理方法 |
CN101119278A (zh) * | 2007-09-14 | 2008-02-06 | 广东威创日新电子有限公司 | 一种处理海量数据的方法及系统 |
CN102314476A (zh) * | 2010-06-30 | 2012-01-11 | 索尼公司 | 复制装置、复制方法、存储器介质和程序 |
CN102142032A (zh) * | 2011-03-28 | 2011-08-03 | 中国人民解放军国防科学技术大学 | 一种分布式文件系统的数据读写方法及系统 |
CN103294405A (zh) * | 2012-03-02 | 2013-09-11 | 联想(北京)有限公司 | 数据读写方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US9547456B2 (en) | 2017-01-17 |
US20140281221A1 (en) | 2014-09-18 |
CN104050200A (zh) | 2014-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104050200B (zh) | 用于数据拷贝的方法和装置 | |
US10977124B2 (en) | Distributed storage system, data storage method, and software program | |
US10621083B2 (en) | Storage system and storage control method | |
CN107870730B (zh) | 用于管理存储系统的方法和系统 | |
CN103530310B (zh) | 为基于散列的消重进行子块分割的方法和系统 | |
CN104657405B (zh) | 用于归档数据的基于优先级的可靠性机制的方法和系统 | |
US20220107729A1 (en) | Reorganizing disks and raid members to split a disk array during capacity expansion | |
EP2899626B1 (en) | Method and system for service-aware data placement in a storage system | |
CN107484427B (zh) | 用于处理存储设备中分条的方法和存储设备 | |
US9274723B2 (en) | Storage apparatus and its control method | |
US20160048342A1 (en) | Reducing read/write overhead in a storage array | |
US11218174B2 (en) | Method and system for storing data locally repairable and efficient multiple encoding | |
EP2899627A1 (en) | Method and system for service-aware parity placement in a storage system | |
US11042453B2 (en) | Database journaling method and apparatus | |
TW201131351A (en) | System and method for optimizing redundancy restoration in distributed data layout environments | |
CN103793425A (zh) | 用于分布式系统的数据处理方法及装置 | |
CN110096217A (zh) | 在使用映射raid技术的数据存储系统中重新定位来自寿命终止存储驱动器的数据 | |
JP6805816B2 (ja) | 情報処理装置、情報処理システム、情報処理方法及びプログラム | |
US20140215127A1 (en) | Apparatus, system, and method for adaptive intent logging | |
US20130046945A1 (en) | Storage apparatus and storage apparatus control method | |
WO2019084917A1 (zh) | 存储系统可用容量计算方法及装置 | |
CN102629223B (zh) | 一种数据修复方法及装置 | |
CN114385069B (zh) | 存储管理的方法、设备和计算机程序产品 | |
WO2016006023A1 (ja) | ストレージ装置、計算機システム及び方法 | |
WO2015085802A1 (zh) | 数据存储方法及存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200415 Address after: Massachusetts, USA Patentee after: EMC IP Holding Company LLC Address before: Massachusetts, USA Patentee before: EMC Corp. |