CN103959254B - 用于优化去重后的数据的迁移/复制的方法和装置 - Google Patents
用于优化去重后的数据的迁移/复制的方法和装置 Download PDFInfo
- Publication number
- CN103959254B CN103959254B CN201280058164.9A CN201280058164A CN103959254B CN 103959254 B CN103959254 B CN 103959254B CN 201280058164 A CN201280058164 A CN 201280058164A CN 103959254 B CN103959254 B CN 103959254B
- Authority
- CN
- China
- Prior art keywords
- cluster
- data objects
- data
- block
- storage system
- 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
Links
- 230000005012 migration Effects 0.000 title claims abstract description 171
- 238000013508 migration Methods 0.000 title claims abstract description 171
- 238000000034 method Methods 0.000 title claims description 52
- 238000003860 storage Methods 0.000 claims abstract description 227
- 238000009795 derivation Methods 0.000 claims abstract description 26
- 230000004044 response Effects 0.000 claims abstract description 18
- 239000011159 matrix material Substances 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 6
- 239000012141 concentrate Substances 0.000 claims 2
- 230000007246 mechanism Effects 0.000 abstract description 20
- 230000008569 process Effects 0.000 description 32
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 9
- 230000005291 magnetic effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000002708 enhancing effect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- HUTDUHSNJYTCAR-UHFFFAOYSA-N ancymidol Chemical compound C1=CC(OC)=CC=C1C(O)(C=1C=NC=NC=1)C1CC1 HUTDUHSNJYTCAR-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 101000746134 Homo sapiens DNA endonuclease RBBP8 Proteins 0.000 description 1
- 101000969031 Homo sapiens Nuclear protein 1 Proteins 0.000 description 1
- 102100021133 Nuclear protein 1 Human genes 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- 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
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0682—Tape device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种用于优化去重后的数据从内部存储系统到可移动存储系统的迁移/复制的机制。基于存储在所述内部存储系统上的数据对象集的数量,确定要针对所述数据对象集生成的初步集群数。基于所述数据对象集之间的最短距离生成所述初步集群数,每个集群包括一个或多个数据对象集,并且每个数据对象集包括一个或多个数据块。通过标识在尽可能少的数据对象集内具有最大公共块数的集群,标识集群集中的选定集群。响应于所述选定集群的导出大小未超过所述可移动存储系统的可用存储容量,将所述选定集群导出到所述可移动存储系统。
Description
技术领域
本发明一般地涉及改进的数据处理装置和方法,更具体地说,涉及用于优化去重后的数据的迁移/复制的机制。
发明内容
在一个示例性实施例中,提供一种在数据处理系统中的用于优化去重后的数据从内部存储系统到可移动存储系统的迁移/复制的方法。所述示例性实施例基于存储在所述内部存储系统上的数据对象集的数量,确定要针对所述数据对象集生成的初步集群数。所述示例性实施例基于所述数据对象集之间的最短距离生成所述初步集群数。在所述示例性实施例中,每个集群包括一个或多个数据对象集,并且每个数据对象集包括一个或多个数据块。所述示例性实施例通过标识在尽可能少的数据对象集内具有最大公共块数的集群,标识集群集中的选定集群。所述示例性实施例判定所述选定集群的导出大小是否超过所述可移动存储系统的可用存储容量。所述示例性实施例响应于所述选定集群的所述导出大小未超过所述可移动存储系统的所述可用存储容量,将所述选定集群导出到所述可移动存储系统。
在其它示例性实施例中,提供一种包括具有计算机可读程序的计算机可用或可读介质的计算机程序产品。当在计算设备上执行时,所述计算机可读程序使所述计算设备执行上面参考方法示例性实施例概述的各个操作及其组合。
在又一示例性实施例中,提供一种系统/装置。所述系统/装置可包括一个或多个处理器以及与所述一个或多个处理器耦合的存储器。所述存储器可包括指令,当被所述一个或多个处理器执行时,所述指令可使所述一个或多个处理器执行上面参考方法示例性实施例概述的各个操作及其组合。
本发明的这些及其它特征和优点将在下面对本发明示例性实施例的详细描述中进行说明,或者根据下面对本发明示例性实施例的详细描述,本发明的这些及其它特征和优点将对于本领域的普通技术人员而言变得显而易见。
当结合附图阅读下面对示例性实施例的详细描述时,将最佳地理解本发明及其优选使用模式以及进一步的目标和优点。
附图说明
图1是其中可实现示例性实施例的各方面的实例数据处理系统的框图;
图2示出根据示例性实施例的用于将去重后的数据迁移/复制到可移动存储系统的机制的功能框图;
图3A示出根据示例性实施例的由去重迁移/复制逻辑在优化去重后的数据从内部存储系统到可移动存储系统的迁移/复制时执行的操作的流程图;
图3B示出根据示例性实施例的由去重迁移/复制逻辑在优化去重后的数据从内部存储系统到可移动存储系统的迁移/复制时执行的操作的流程图;
图3C示出根据示例性实施例的由去重迁移/复制逻辑在优化去重后的数据从内部存储系统到可移动存储系统的迁移/复制时执行的操作的流程图;
图3D示出根据示例性实施例的由去重迁移/复制逻辑在优化去重后的数据从内部存储系统到可移动存储系统的迁移/复制时执行的操作的流程图;
图4示出根据示例性实施例的由去重迁移/复制逻辑在组织去重后的数据从内部存储系统到可移动存储系统的迁移/复制时执行的操作的流程图。
具体实施方式
如发明者在此已经意识到的,当在存储环境中存储数据时,成本效率是一个重要的方面。一种实现成本效率的方式是通过数据去重。数据去重挑选出相同的数据片并仅将唯一数据实例存储在存储子系统上。因此,与唯一存储的实例相同的其它数据实例仅引用所存储的实例。使用去重存储数据可节省存储容量,因此仅存储唯一数据实例,而其它实例引用该唯一实例。
尽管数据去重可通过创建去重后的数据对象集或块、比较块身份以及仅存储一次相同的块来节省存储容量,但是后续将去重后的数据对象(即,块)迁移到可移动存储介质以用于备份和/或恢复目的目前不会从常驻存储子系统上使用的去重获益。即,当前的各种方法通过从块重新构建数据对象并以数据对象整体的形式存储每个数据对象,将去重后的数据迁移到可移动存储介质。因此,由于数据以其原始方式存储,所以迁移去重后的数据使得去重的成本效率不明显。
其它当前的方法通过将块直接存储在可移动存储介质上来将去重后的数据迁移到可移动存储介质。但是,块迁移可能导致实际的块位于一个可移动存储介质段上,而对该块的引用可能驻留在另一可移动存储介质段上。因此,数据对象的恢复操作变得相当耗时,因为可能必须安装并读取大量可移动存储介质段,这样使得恢复时间变得令人难以接受。
因此,各示例性实施例提供用于将去重后的数据迁移/复制到可移动存储系统,同时使数据对象实体的所有块或对块的引用位于同一可移动介质段的机制。去重引擎执行去重过程,该过程选择与可适当地存储在一段可移动存储系统上的数据对象集相关的唯一块集。即,示例性实施例的机制从跟踪与数据对象关联的块的去重表来标识要被迁移/复制到可移动存储系统的所有数据对象的唯一块。如果所标识的类似块集群集可适当地存储在可移动存储系统上,则将该集群集迁移/复制到可移动存储系统。
因此,可在多种不同类型的数据处理环境中利用示例性实施例。为了提供示例性实施例的具体元素和功能的描述的上下文,下面提供图1作为 可实现示例性实施例的各方面的实例环境。应该理解,图1只是一个实例,并非旨在断言或暗示有关其中可实现本发明各方面或各实施例的环境的任何限制。在不偏离本发明精神和范围的情况下,可做出许多对所示环境的修改。
图1是其中可实现示例性实施例的各方面的实例数据处理系统的框图。数据处理系统100是其中可找到实现本发明示例性实施例的过程的计算机可用代码或指令的计算机的一个实例。
在所示实例中,数据处理系统100采用包括北桥及存储器控制器集线器(NB/MCH)102和南桥及输入/输出(I/O)控制器集线器(SB/ICH)104的集线器体系结构。处理单元106、主存储器108和图形处理器110与NB/MCH102相连。图形处理器110可通过加速图形端口(AGP)与NB/MCH102相连。
在所示实例中,局域网(LAN)适配器112与SB/ICH104相连。音频适配器116、键盘及鼠标适配器120、调制解调器122、只读存储器(ROM)124、硬盘驱动器(HDD)126、CD-ROM驱动器130、通用串行总线(USB)端口和其它通信端口132,以及PCI/PCIe设备134通过总线138和总线140与SB/ICH104相连。PCI/PCIe设备134例如可包括以太网适配器、附加卡、笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM124例如可以是闪存基本输入/输出系统(BIOS)。
HDD126和CD-ROM驱动器130通过总线140与SB/ICH104相连。HDD126和CD-ROM驱动器130例如可使用集成驱动器(IDE)或串行高级技术附件(SATA)接口。超级I/O(SIO)设备136可与SB/ICH104相连。在一个实施例中,HDD126是固态驱动器(SDD)。在又一实施例中,磁盘驱动器130是数字化通用磁盘(DVD)驱动器或蓝光磁盘(BD)驱动器。
操作系统在处理单元106上运行。操作系统协调图1的数据处理系统100内的各个组件并提供对它们的控制。作为客户机,操作系统是可商购的操作系统,例如MicrosoftWindows7(Microsoft和Windows是 Microsoft Corporation在美国和/或其它国家/地区的商标)。诸如Java程序设计系统之类面向对象的程序设计系统可与操作系统结合运行并提供从数据处理系统100上执行的Java程序或应用对操作系统的调用(Java是Oracle和/或其附属公司的商标)。
作为服务器,数据处理系统100例如可以是运行高级交互执行体((AIX(商标))操作系统或LINUX操作系统的IBM(商标)eServer(商标)System p(商标)计算机系统(IBM、eServer、System p和AIX是国际商业机器公司在美国和/或其它国家/地区的商标,LINUX是Linus Torvalds在美国和/或其它国家/地区的注册商标)。LINUX操作系统的类型包括—但不限于—Red Hat Enterprise Linux(RHEL)和Debian Linux。数据处理系统100可以是对称多处理器(SMP)系统,该系统在处理单元106中包括多个处理器。备选地,也可采用单处理器系统。
操作系统、面向对象的程序设计系统的指令,以及应用或程序位于诸如HDD126之类的存储器件上,并且可被加载到主存储器108以便由处理单元106执行。本发明示例性实施例的过程可由处理单元106使用计算机可用程序代码执行,该计算机可用程序代码可位于诸如主存储器108、ROM124之类的存储器中,也可以位于例如一个或多个外围设备126和130中。
诸如图1所示的总线138或总线140之类的总线系统可包括一个或多个总线。当然,总线系统可使用任何类型的光纤通道网络或体系结构实现,该总线系统允许在与光纤通道网络或体系结构相连的各种组件或设备之间进行数据传输。诸如图1的调制解调器122或网络适配器112之类的通信单元可包括一个或多个用于发送和接收数据的设备。存储器例如可以是主存储器108、ROM124或诸如在图1中的NB/MCH102内发现的高速缓存。
本领域是普通技术人员将理解,图1中的硬件可根据实现而改变。除了图1所示的硬件之外,还可使用诸如闪存、等效的非易失性存储器或光盘驱动器(包括紧凑型磁盘、数字化通用磁盘和蓝光磁盘)等之类的其它内部硬件或外围设备作为补充或替代。另外,在不偏离本发明精神和范围的情况下,示例性实施例的过程可应用于上述SMP系统之外的多处理器 数据处理系统。
而且,数据处理系统100可采取多个不同数据处理系统中任一者的形式,其中包括客户机计算设备、服务器计算设备、平板计算机、膝上型计算机、电话或其它通信设备、个人数字助理(PDA)等。在某些示例性实例中,数据处理系统100可以是被配置为具有闪存以提供用于存储例如操作系统文件和/或用户生成的数据的非易失性存储器的便携式计算设备。基本上,数据处理系统100可以是任何已知的或将来开发的数据处理系统而没有任何体系结构限制。
再次,示例性实施例的机制可将存储在不可移动存储系统(例如,图1的硬盘驱动器(HDD)126)上的去重后的数据迁移/复制到可移动存储系统(例如,图1的CD-ROM130)、线性磁带文件系统(LTFS)等,同时使数据对象实体一起位于同一可移动存储系统段。所述机制从跟踪与数据对象关联的块的去重表来标识来自要被迁移/复制到可移动存储系统的数据对象集中的唯一块。所述机制导出块引用表,该表列出第一存储介质上存储的每个唯一块的引用数。所述机制通过消除具有两个以下引用的块来精简块引用表,并且针对剩余块,创建将块映射到数据对象的映射矩阵[C]。基于映射矩阵[C],所述机制创建n维区域中表示的每个数据对象的向量,计算“度量”(例如,向量之间的欧几里得距离),然后将欧几里得距离插入度量矩阵[M]。欧几里得距离是两点间的距离。从度量矩阵[M],所述机制标识在具有最多公共块的意义上具有最短距离的数据对象集群。当找到多个具有相同距离的集群时,所述机制随机确定优选集群。基于优选集群的确定,所述机制确定所需的集群存储空间(导出大小),然后将所需的存储大小与可移动存储系统的容量进行比较。如果导出大小大于可移动存储系统的容量,则所述机制将集群标记为禁用并确定下一优选集群。如果导出大小小于可移动存储系统的容量减去可选的预定安全裕度,则所述机制计算新集群点,然后计算其它数据对象与新集群点之间的欧几里得距离。接着,将其它数据对象添加到该集群,直到达到所需的导出大小。如果导出大小小于可移动存储系统的容量并大于可移动存储系统的容量减去可选的预定安全裕度,所述机制便调用迁移/复制过程。
图2示出根据示例性实施例的用于将去重后的数据迁移/复制到可移动存储系统的机制的功能框图。数据处理系统200包括去重逻辑202和去重迁移/复制逻辑204。去重逻辑202接收数据206,挑选出数据206的唯一部分,然后仅将唯一数据实例存储在内部存储系统208上,该内部存储系统不是可移动存储系统。数据206可以是将执行数据去重的数据对象,例如数据流、数据文件或虚拟磁带。示例性实施例使用示例性术语虚拟磁带(Vtape)表示要被去重的数据对象。在数据处理系统200中,去重逻辑202维护下面所示的去重表。
[表1]
Vtape-块-ID | 块散列摘要 | 存储位置 |
Vtape1-块1(A01) | AABBCC12345 | 1 |
Vtape1-块2(A02) | BBCCDD54321 | 2 |
Vtape1-块3(A03) | CCDDEE67890 | 3 |
Vtape1-块4(A04) | DDEEFF09876 | 4 |
Vtape2-块1(A01p) | AABBCC12345 | 1 |
Vtape2-块2(B02) | EEFFGG12345 | 5 |
Vtape2-块3(B03) | FFGGHH12345 | 6 |
表1:去重表
为了存储由Vtape表示的数据对象,去重逻辑202将Vtape分为多个块并在去重表的“Vtape-块-ID列”中跟踪每个块。尽管去重逻辑202优选地以类似长度保留块,但是去重逻辑202也可使用可变长度存储块。去重逻辑202计算每个块的身份特征,该特征例如可以是散列“消息摘要”或简称为“摘要”,此摘要是诸如消息数位5(MD-5)或安全散列算法(SHA-1、SHA-256、SHA-512)之类的密码散列函数的字母数字输出。摘要针对给定散列函数具有固定长度并且根据所用的散列函数改变长度。例如,MD-5 的摘要为160位长,而SHA-1的摘要为128位长。散列函数的输入为待去重的块。密码散列函数一般用于去重,因为它们是“雪崩(avalanche)”函数,意味着两个数据块之间的仅一位差别将导致相应摘要之间的显著变化。去重逻辑202将身份特征存储在去重表的“块散列摘要”列。在将任何块存储到去重表之前,去重逻辑202判定数据块是否精确地等于去重表内已有的当前块,例如通过比较各个块的密码散列摘要来实现此目的。如果块已经存在,通过使摘要精确地等于现有块的摘要,去重逻辑202将该块引用到去重表的“存储位置”列中已有块的存储位置,而非存储当前块并浪费宝贵的存储空间。如果块不存在,则去重逻辑202存储块并将该新块的摘要输入去重表中的“块散列摘要”列以及将该新块的存储位置输入表中的“存储位置”列。存储位置可以是内部存储系统208上的一个或多个块地址或是Vtape ID与Vtape上块编号的组合,如下一段中描述的那样。
因此,每个块具有唯一ID或指向唯一ID,并且去重逻辑202使用以下语义存储块信息:Xzz(Y),其中前缀“X”是Vtape的ID,“zz”是特定Vtape上的块编号。如果存在Y后缀,则Y的存在表示这是指向给定块的指针。因此,参考去重表,去重逻辑将Vtape1分为4个块(Vtape-块-ID列,行2-5),并且去重逻辑将Vtape2分为3个块(Vtape-块-ID列,行6-8)。由于Vtape2的块1(Vtape-块-ID列,行6)与Vtape1的块1(Vtape-块-ID列,行2)具有相同的散列摘要,因此去重逻辑在同一位置存储Vtape2的块1。这样,Vtape2的块1的ID被更改为指向Vtape1的块1。
去重迁移/复制逻辑204为数据处理系统200的用户提供将内部存储系统208上存储的去重后的数据迁移/复制到可移动存储系统210,同时使数据对象块及其各自的数据对象块引用位于一处的机制。为了执行迁移/复制,去重迁移/复制逻辑204利用多种变量计算要存储在具有固定容量的可移动存储系统210上的数据对象的最佳组合,这些变量如下所示:
[chunk-size]:一个数据块的大小,例如1MB。
[rsm-size]:可移动存储系统的大小,例如40MB。
[pointer to chunk of own Vtape]:各个Vtape中块的指针。
[pointer to chunk of another Vtape]:另一Vtape中块的指针。
[native-Vtape-size]:没有去重后的数据的Vtape的原始大小。
[dedup-Vtape-size]:仅包括每个块的一个副本和块指针的Vtape的大小;实际上是去重后的本机Vtape(=[native-Vtape-size]-pointer to chunk of own Vtape)。
[multi-ref-chunks]:另外被其它磁带引用的块数,以粗体标记。
[dedup-cluster-size]:仅包括每个块的一个副本和块指针的聚集Vtape集群的大小;实际上是需要被迁移/复制到的所有数据之和。
尽管上面的去重描述存储Vtape1和Vtape2中的块,但是本领域的普通技术人员将理解,许多虚拟磁带(Vtape)可存储在内部存储系统208上并且每个Vtape可包括数量不同于上面的去重表中所示的块。作为实例,下面示出六个Vtape表示,它们各自的块由去重逻辑202处理。
Vtape1表示:
A01 | A02 | A03 | A04 | A05 | A06 | A07 | A08 | A09 | A10 |
A11 | A12 | A13 | A14 | A15 |
Vtape2表示:
A01p | B02 | B03 | B04 | A05p | B06 | B07 | B08 | B09 | B10 |
B11 | B12 | B13 | B11p | B10p | B06p | B07p | B08p | B09p | B04p |
A05p | B06p | B03p | B11p | B12p | B06p | B02p |
Vtape3表示:
C01 | C02 | B03p | C04 | A05p | B06p | C07 | C08 | C09 | C10 |
C11 | C12 | C13 | C14 | C15 | C16 | C17 | C08p | C09p | C01p |
C01p | C10p | C07p | C11p | C12p | C15p | C02p | C09p |
Vtape4表示:
A01p | D02 | B03p | D04 | A05p | B06p | D07 | D08 | D09 | D10 |
D11 | D12 |
Vtape5表示:
A01p | B02p | B03p | A04p | A05p | E06 |
Vtape6表示:
F01 | B02p | F03 | F04 | F05 | F06 | F07 | F08 | F09 |
在这些实例中,Vtape1包括15个唯一块,其ID为A01-A15。如图所示,块A01、A04和A05也被Vtape2、Vtape3、Vtape4和Vtape5引用。Vtape2包括27个块,其中有11个唯一块。Vtape2也包括3个同时被其它Vtape引用的块,这三个块是B02、B03和B06。此外,Vtape2包括两个指向另一Vtape(Vtape1)的块的指针(A01p和A05p)。
从Vtape表示,去重迁移/复制逻辑204可导出显示每个Vtape具有多大本机容量、每个Vtape在去重之后具有多大容量,以及多引用块数的另一表示,该另一表示由内部存储系统表上存储的以下虚拟磁带示出。
[表2]
Vtape | [native-Vtape-size] | [dedup-Vtape-size] | [multi-ref-chunk] |
Vtape1 | 15 | 15 | 3 |
Vtape2 | 27 | 13 | 3 |
Vtape3 | 28 | 17 | 0 |
Vtape4 | 12 | 12 | 0 |
Vtape5 | 6 | 6 | 0 |
Vtape6 | 9 | 9 | 0 |
表2:内部存储系统表上存储的虚拟磁带
如图所示,去重逻辑202已在内部存储系统208上存储六个Vtape。Vtape1具有15MB本机大小,这指示该磁带上没有任何数据被执行去重(无 相同的块)。Vtape2的去重后的大小为13MB,因为它只有13个唯一块以及14个块指针。另外,Vtape1具有3个被其它磁带引用的块。
为了使去重迁移/复制逻辑204执行去重后的数据从内部存储系统208到可移动存储系统210的迁移/复制,去重迁移/复制逻辑204生成块引用表和上述Vtape表示,该块引用表包括内部存储系统表上存储的虚拟磁带中汇总的全部多引用块。
[表3]:
表3:块引用表
根据块引用表,块A01被另一磁带引用三次,块A04被引用一次,块A05被引用五次,块B02被引用两次,块B03被引用三次,块B06被引用两次。
使用块引用表,去重迁移/复制逻辑204生成块矩阵表,该表针对每个Vtape指示哪个块被引用。值1指示块是否被Vtape至少引用一次,值0指示Vtape是否未引用该特定块。
[表4]
表4:块矩阵表。
使用块矩阵表,去重迁移/复制逻辑204生成块矩阵表中针对每个Vtape的点的n维表示,如下所示:
Vtape1=(1/1/1/0/0/0)
Vtape2=(1/0/1/1/1/1)
Vtape3=(0/0/1/0/1/1)
Vtape4=(1/0/1/0/1/1)
Vtape5=(1/1/1/1/1/0)
Vtape6=(0/0/0/1/0/0)
通过作为n维空间中的点的Vtape表示,去重迁移/复制逻辑204计算上述度量。在一个实施例中,去重迁移/复制逻辑204可通过计算两个Vtapex和y之间的欧几里得距离来计算度量,其中使用下面的距离差平方和之平方根算法:
其中针对两个点x(x1,…,xn)和y(y1,…,yn)计算欧几里得距离。在拓扑语言中,欧几里得距离是勒贝格空间L2度量。在另一实施例中,不在上述相应距离差平方和算法中求平方根,从而提供非欧几里得度量,该度量将更大的权重赋予更加远离的集群。在又一备选实施例中,度量是计算为勒贝格空间L2度量的非欧几里得距离,即,计算为相应距离差值的绝对值之和:
d(x,y)=∑|xi-yi|。
在又一实施例中,使用“总时间”作为度量以替代“距离”。该总时间例如将是以下各个时间之和:(a)自动化挑选器移动到包含可移动介质的存储槽的时间,(b)从其存储槽抓住可移动介质的时间,(c)自动化挑选器移动到介质驱动器的时间,(d)将可移动介质装入介质驱动器的时间,以及(e)查找一个或多个所需块的时间。尽管这四种算法各异,但是它们均从拓扑 上定义度量。
去重迁移/复制逻辑204将获得的示例性欧几里得距离值插入度量矩阵[M],如下所示:
[表5]
表5:度量矩阵[M]。
去重迁移/复制逻辑204然后确定通过对Vtape数求平方根生成的初步集群数。
例如
因此,去重迁移/复制逻辑204确定迁移/复制过程应该最初从两个初步集群开始。
去重迁移/复制逻辑204搜索度量矩阵[M]以查找Vtape之间的两个最短距离并生成两个集群。在该实例中,两个集群为:
集群24(Vtape2&Vtape4)=1,000
集群34(Vtape3&Vtape4)=1,000
如图所示,存在两个集群包括同一Vtape的情况。在这种情况下,去重迁移/复制逻辑204将分析两个集群,尽管在后面的步骤中,仅将公共 Vtape独占地添加到更有效的集群。
根据所确定的集群,去重迁移/复制逻辑204使用在前集群-块引用部分增强块-矩阵表,如下所示:
[表6]
表6:增强的块矩阵表
去重迁移复制逻辑204通过确定在尽可能少的Vtape内具有最多公共块的集群来选择最佳集群:
集群24:5个公共块,使用2个Vtape―>5/2=2.5
集群34:4个公共块,使用2个Vtape―>4/2=2.0
去重迁移/复制逻辑204确定集群24比集群34具有更好的因数。如果去重迁移/复制逻辑204确定两个集群具有相同的因数,则去重迁移/复制逻辑204随机选择这两个集群之一。
一旦选定最佳集群,去重迁移/复制逻辑204便基于选定集群的[export-size]和可移动存储系统的可用容量[rsm-size]判定选定集群是否可 存储在可移动存储系统210上。为了确定选定集群的[export-size],去重迁移/复制逻辑204使用以下公式:
{对于集群的每个Vtape:([dedup-Vtape-size]–对集群中其它磁带的引用[multi-ref-chunks pointing to VtapeX]–common references to Vtapes not beingpart of the cluster)-对不属于该集群一部分的Vtape的公共引用}。
对于集群24:
Vtape2:[dedup-Vtape-size]–[multi-ref-chunks pointing to Vtape4]–common references to other Vtapes),结果为:
Vtape2:13-0-2(A01p,A05p)=11块
Vtape4:[dedup-Vtape-size]–[multi-ref-chunks pointing to Vtape2]–common references to other Vtapes),结果为:
Vtape4:12-2(B03p,B06p)-2(A01p,A05p)=8块
对其它块的公共引用=2块(A01p,A05p)
因此,选定集群的大小[dedup-Vtape-size]将是:11+8+2=21块,该值等于为21MB的[export-size]。
去重迁移/复制逻辑204然后判定[export-size]是否大于可移动存储系统的可用容量[rsm-size]。如果去重迁移/复制逻辑204判定[export-size]大于[rsm-size],则去重迁移/复制逻辑204将集群排列添加到禁用集群列表。尽管并未例示,但是如果选定集群包括两个以上Vtape,则去重迁移/复制逻辑204从该集群中删除最后添加的集群元素,然后判定修改后的集群的新[export-size]是否大于可移动存储系统的可用容量[rsm-size]。如果该集群的[export-size]并未精简足够的大小以适当地存储在可移动存储系统210上,则去重迁移/复制逻辑204将精简后的集群添加到禁用集群列表,并且再次从该集群中删除最后添加的集群元素,直到仅剩两个Vtape。如果仅 剩两个Vtape,则删除其中一个Vtape将导致集群被删除,去重迁移/复制逻辑204将精简后的集群排列添加到禁用集群列表并选择新的最佳集群。
如果去重迁移/复制逻辑204判定集群的[export-size]小于可移动存储系统的可用容量[rsm-size],则去重迁移/复制逻辑204判定[export-size]是否超过可移动存储系统的容量减去可选的预定安全裕度[rsm-threshold]。可选的预定安全裕度的阈值可以是[rsm-size]的85%,因此,例如为0.85*40MB=34MB。如果[export-size]大于[rsm-threshold],则去重迁移/复制逻辑204修改选定集群排列中不属于该集群一部分的引用以便不再引用这些集群。去重迁移/复制逻辑204然后将集群导出到可移动存储系统210。一旦导出Vtape集群,去重迁移/复制逻辑204便删除所有与Vtape-Vtape-矩阵中的集群以及所有其它集群的Vtape关联的项。
此外,一旦去重迁移/复制逻辑204删除所有与Vtape-Vtape-矩阵中的集群以及所有其它集群的Vtape关联的项,去重迁移/复制逻辑204便可删除所有与来自内部存储系统208的已导出集群关联的数据。即,去重迁移/复制逻辑204可出于多种原因执行迁移/复制过程,例如备份、恢复、内部存储系统208中的空间管理等。关于空间管理,内部存储系统208中的空间一般在性能和成本方面具有较高的价值。因此,将数据从内部存储系统108迁移/复制到可移动存储系统210以便降低成本并提高性能。当去重迁移/复制逻辑204删除与来自内部存储系统208的已导出集群关联的数据时,去重迁移/复制逻辑204可将已删除数据的引用插入相应可移动存储系统210。该引用可以是其中来自内部存储系统208的已导出集群被映射到可移动存储系统210的引用表,该表可包括卷标识符、stub文件或块、空文件或块等,该表引用与已导出集群关联的数据被导出到的相应可移动存储系统210。去重迁移/复制逻辑204判定是否存在仍待迁移/复制到不同的可移动存储系统210的其它Vtape。如果存在仍待迁移/复制的其它Vtape,则去重迁移/复制逻辑204针对剩余的Vtape再次应用去重迁移/复制过程。如果没有其它Vtape,则去重迁移/复制逻辑204结束迁移/复制过程。
如果[export-size]等于或小于[rsm-threshold],则去重迁移/复制逻辑 204判定是否存在其它仍需迁移/复制的Vtape。如果没有其它Vtape,则去重迁移/复制逻辑204可提示用户是否应该继续迁移/复制过程,因为尚未达到[rsm-threshold],这种状况会使导出Vtape集群低效。如果用户指示继续迁移/复制过程,则去重迁移/复制逻辑204修改选定集群排列中不属于该集群一部分的引用,从而不再引用这些集群。去重迁移/复制逻辑204将集群原样导出到可移动存储系统210。一旦已导出Vtape集群,去重迁移/复制逻辑204便删除所有与Vtape-Vtape-矩阵中的集群以及所有其它集群的Vtape关联的项。再次地,去重迁移/复制逻辑204可根据执行迁移/复制过程的目的,删除所有与来自内部存储系统208的已导出集群关联的数据。去重迁移/复制逻辑204再次判定是否存在仍待迁移/复制到不同的可移动存储系统210的其它Vtape。但是,由于去重迁移/复制逻辑204已经判定没有其它Vtape,因此去重迁移/复制逻辑204结束迁移/复制过程。
如果存在仍待迁移/复制的Vtape,则去重迁移/复制逻辑204生成增强块矩阵表中选定最佳集群的n维表示,如下所示:
集群24=(1/0/1/1/1/1)
去重迁移/复制逻辑204计算所有Vtape点到选定最佳集群点的欧几里得距离。去重迁移/复制逻辑204将获得的示例性欧几里得距离值插入Vtape集群矩阵,如下所示:
[表7]
Vtape/集群 | 集群24 |
Vtape1 | 2,000 |
Vtape2 | x |
Vtape3 | 1,414 |
Vtape4 | x |
Vtape5 | 1,414 |
Vtape6 | 2,000 |
表7:Vtape-集群矩阵。
去重迁移/复制逻辑204然后将具有到选定最佳集群点的最短欧几里得距离的Vtape添加到选定最佳集群,前提是该集群排列不在禁用集群列表上。如果两个或更多Vtape到选定最佳集群的最短距离相同,则去重迁移/复制逻辑204生成集群,如下所示:
集群24+Vtape3=集群243
集群24+Vtape5=集群245
因此,在该实例中,现在由去重迁移/复制逻辑204生成以下集群:
集群243
集群245
集群34(来自先前生成)
需要注意,在此步骤之后,去重迁移/复制逻辑204可能已生成两个匹配集群。如果存在两个匹配集群,则去重迁移/复制逻辑204将删除其中一个匹配实例。在该实例中,由于没有匹配集群,因此去重迁移/复制逻辑204将重复此过程,直到导出集群。即,去重迁移/复制逻辑204使用两个新集群增强块-矩阵表,如下所示:
[表8]
表8:增强的块矩阵表
去重迁移/复制逻辑204通过确定在尽可能少的Vtape内具有最多公共块的集群来选择最佳集群:
集群243:5个公共块,使用3个Vtape―>5/3=1.666
集群245:6个公共块,使用3个Vtape―>6/3=2.0
集群34:4个公共块,使用2个Vtape―>4/2=2.0
如果两个集群因数匹配,如集群245和集群34,则去重迁移/复制逻辑204随机选择一个集群。
例如,如果去重迁移/复制逻辑204选择集群34,则去重迁移/复制逻辑204基于选定集群的[export-size]和可移动存储系统的可用容量[rsm-size]判定选定集群是否可存储在可移动存储系统210上。
对于集群34:
Vtape3:[dedup-Vtape-size]–[multi-ref-chunks pointing to Vtape4]–[common references to other Vtapes],结果为:
Vtape3:17-0-3(A05p,B03p,B06p)=14块
Vtape4:[dedup-Vtape-size]–[multi-ref-chunks pointing to Vtape3]–[common references to other Vtapes],结果为:
Vtape4:12-0-3(A05p,B03p,B06p)=9块
common references to other Vtapes=3块(A05p,B03p,B06p)
因此,选定集群的大小[dedup-Vtape-size]将是:14+9+3=26块,该值等于为26MB的[export-size]。
由于所确定的26MB小于[rsm-size]并且小于[rsm-threshold],因此去 重迁移/复制逻辑204判定是否存在仍待迁移/复制的其它Vtape。由于存在要迁移的其它Vtape,因此去重迁移/复制逻辑204在增强块矩阵表中生成选定最佳集群的n维表示,如下所示:
集群34=(1/0/1/0/1/1)
去重迁移/复制逻辑204计算所有Vtape点到选定最佳集群点的欧几里得距离。去重迁移/复制逻辑204将获得的示例性欧几里得距离值插入Vtape集群矩阵,如下所示:
[表9]
Vtape/集群 | 集群34 |
Vtape1 | 1,732 |
Vtape2 | 1,000 |
Vtape3 | x |
Vtape4 | x |
Vtape5 | 1,732 |
Vtape6 | 2,236 |
表9:Vtape-集群矩阵。
根据Vtape-集群矩阵,Vtape2是到集群34距离最短的Vtape;因此,去重迁移/复制逻辑204然后将具有到选定最佳集群点的最短欧几里得距离的Vtape添加到选定最佳集群,从而创建集群342。
因此,在该实例中,去重迁移/复制逻辑204现在已生成以下集群:
集群243
集群245
集群342
由于集群243和集群342相同,因此去重迁移/复制逻辑204删除一个实例。这样,仅保留集群243和集群245。去重迁移/复制逻辑204再次使用在前集群块引用部分增强块-矩阵表,并通过确定在尽可能少的Vtape内具有最多公共块的集群来选择最佳集群:
集群243:5个公共块,使用3个Vtape―>5/3=1.666
集群245:6个公共块,使用3个Vtape―>6/3=2.0
去重迁移/复制逻辑204确定集群243的因数优于集群245。去重迁移/复制逻辑204基于选定集群的[export-size]和可移动存储系统的可用容量[rsm-size]判定选定集群是否可存储在可移动存储系统210上。
对于集群243:
Vtape2:[dedup-Vtape-size]–[multi-ref-chunks pointing to Vtape4]–[multi-ref-chunks pointing to Vtape3]–[common references to other Vtapes],结果为:
Vtape2:13-0-0-2(A01p,A05p)=11块
Vtape4:[dedup-Vtape-size]–[multi-ref-chunks pointing to Vtape2]–[multi-ref-chunks pointing to Vtape3]–[common references to other Vtapes]
Vtape4:12-2(B03p,B06p)-0-2(A01p,A05p)=8块
Vtape3:[dedup-Vtape-size]–[multi-ref-chunks pointing to Vtape2]–[multi-ref-chunks pointing to Vtape4]–[common references to other Vtapes]
Vtape3:17-2(B03p,B06p)-0-1(A05p)=14块
common references to other Vtapes=2块(A01p,A05p)
因此,选定集群的大小[dedup-Vtape-size]将是:11+8+14+2=35块,该值等于为35MB的[export-size]。
由于集群243小于[rsm-size]并且大于[rsm-threshold],因此去重迁移/复制逻辑204修改选定集群排列中不属于该集群一部分的引用以便不再引用这些集群。例如,Vtape2中的A01p被修改为唯一块。去重迁移/复制逻 辑204然后导出集群234,去重迁移/复制逻辑204删除包括Vtape2、Vtape3或Vtape4的所有集群,并且删除Vtape-Vtape-矩阵中这些Vtape的所有项,保留:
[表10]
表10:度量矩阵[M]。
然后,去重迁移/复制逻辑204重复此过程,直到已迁移/复制所有Vtape。
一旦去重迁移/复制逻辑204标识了要导出的集群,去重迁移/复制逻辑204便继续以这样的方式组织与该集群中的Vtape关联的数据:例如避免磁带不断地前绕/后绕(如果可移动存储系统210为磁带存储介质)、磁头移动(如果可移动存储系统210为外部硬盘驱动器)、激光头移动(如果可移动存储系统210为光盘存储介质)等。
如上面确定的,对于集群243:
Vtape2:[dedup-Vtape-size]–[multi-ref-chunks pointing to Vtape4]–[multi-ref-chunks pointing to Vtape3]–[common references to other Vtapes],结果为:
Vtape2:13-0-0-2(A01p,A05p)=11块
Vtape4:[dedup-Vtape-size]–[multi-ref-chunks pointing to Vtape2]–[multi-ref-chunks pointing to Vtape3]–[common references to other Vtapes]
Vtape4:12-2(B03p,B06p)-0-2(A01p,A05p)=8块
Vtape3:[dedup-Vtape-size]–[multi-ref-chunks pointing to Vtape2]–[multi-ref-chunks pointing to Vtape4]–[common references to other Vtapes]
Vtape3:17-2(B03p,B06p)-0-1(A05p)=14块
common references to other Vtapes=2块(A01p,A05p)
因此,选定集群的大小[dedup-Vtape-size]将是:11+8+14+2=35块或为35MB的[export-size]。如上所述,可移动存储系统210的示例性容量[rsm-size]为40MB。
集群234的块布局如下所示:
[表11]
表11:块布局表。
Vtape根据彼此之间的相似度排序。因此,去重迁移/复制逻辑204通过生成度量矩阵[M]来确定每个Vtape的“最近邻”,如下所示:
[表12]
Vtape/Vtape | Vtape2 | Vtape3 | Vtape4 |
Vtape2 | X | x | X |
Vtape3 | 1,414 | x | X |
Vtape4 | 1,000 | 1,000 | X |
表12:度量矩阵[M]。
基于度量矩阵[M],去重迁移/复制逻辑204选择两个具有最短欧几里得距离的Vtape(在该实例中为Vtape2和Vtape4)作为开始指示,因为Vtape2和Vtape4具有最多公共块。去重迁移/复制逻辑204然后将Vtape2和Vtape4标记为排序的边。去重迁移/复制逻辑204搜索与Vtape2或Vtape4具有下一最近距离的下一Vtape(在该实例中为Vtape3,该Vtape距离Vtape4比距离Vtape2近)。因此,去重迁移/复制逻辑204将Vtape3添加到次序中并将Vtape的次序表示为Vtape2、Vtape4和Vtape3,并且将Vtape2和Vtape3作为新的Vtape边。只要剩余Vtape,去重迁移/复制逻辑204便增强Vtape次序。由于只有3个Vtape,因此Vtape表示如下所示:
Vtape2表示:
A01 | B02 | B03 | B04 | A05 | B06 | B07 | B08 | B09 | B10 |
B11 | B12 | B13 | B11p | B10p | B06p | B07p | B08p | B09p | B04p |
A05p | B06p | B03p | B11p | B12p | B06p | B02p |
Vtape4表示:
A01p | D02 | B03p | D04 | A05p | B06p | D07 | D08 | D09 | D10 |
D11 | D12 |
Vtape3表示:
C01 | C02 | B03p | C04 | A05p | B06p | C07 | C08 | C09 | C10 |
C11 | C12 | C13 | C14 | C15 | C16 | C17 | C08p | C09p | C01p |
C01p | C10p | C07p | C11p | C12p | C15p | C02p | C09p |
根据上述分组,去重迁移/复制逻辑204以下面的次序(数字1-70是可移动存储系统210上的位置)将Vtape写入可移动存储系统210:
在另一实施例中,不是仅写入第一块实例,而是去重迁移/复制逻辑204可仅写入最后一个块实例,这样导致根据下面的次序将Vtape写入可移动存储系统210:
无论去重迁移/复制逻辑204确定写入第一块实例还是最后一个块实例,在将块写入可移动存储系统210之前,去重迁移/复制逻辑204均确定可移动存储系统210上将剩余的容量。例如,唯一数据块可能具有1MB大小,指针可能具有1kB大小。在上述实例中,存在67个块位置,其中有32个指针和35个唯一块。因此,要写入可移动存储系统210的数据量实际为:35*1MB数据+32*1kB指针=35,032MB。如果可移动存储系统210的初始可用容量为40MB,则在去重迁移/复制逻辑204将数据写入可移动存储系统210之后,剩余空间将为:40MB-35,032MB=4,968MB。
如果可移动存储系统2510上存在可用空间,去重迁移/复制逻辑204不会浪费此剩余空间,而是可使用此空间写入块两次,以避免:磁带不断地前绕/后绕(如果可移动存储系统210为磁带存储介质)、磁头移动(如果可移动存储系统210为外部硬盘驱动器)、激光头移动(如果可移动存储系统210为光盘存储介质)等。为了确定应将哪些块写入两次,去重迁移/复制逻辑204可实施各种策略。例如,基于所实施的策略,去重迁移/复制逻辑204可将引用最多的块写入多次,将具有在第一次出现与最后一次出现之间的最大距离的块写入两次,重写被确定为具有原始块与原始块指针之间的最大距离的块,从而缩短引用距离等。一旦去重迁移/复制逻辑204确定如何分配可移动存储系统210的可用空间,无论该可用空间中是否填充其它块,去重迁移/复制逻辑204均将所确定配置中的数据写入可移动存储系统210。
在另一实施例中,去重迁移/复制逻辑204可以特殊模式将引用最多的 块写入可移动存储系统210的开头,从而可驱动微代码将这些引用最多的块取回到非易失性随机存取存储器(NVRAM)并在读取时解除引用这些块。
本领域的技术人员很容易理解,内部存储系统208和可移动存储系统210均可由数据处理系统200内的备份应用在各个时点上访问。因此,如果数据已被迁移/复制,备份应用可能需要从内部存储系统208或可移动存储系统210进行读取。因此,去重迁移/复制逻辑204可能需要通知这些备份应用Vtape何时已被迁移/复制到可移动存储系统210。即,备份应用可使用下表跟踪Vtape位置:
条形码 | 数据开始(扇区) | 数据结束(扇区) | 库 |
000001L3 | 0x0000001 | 0x0000015 | 0007650 |
当从可移动存储系统210接收到通知时,备份应用可将Vtape位置更新为下表:
条形码 | 数据开始(扇区) | 数据结束(扇区) | 库 |
123456L5 | 0x0000087 | 0x0000100 | 0003584 |
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本发明的各方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各方面还可以实现为在任意一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子 (非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CDROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明各方面操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如JavaTM、SmalltalkTM、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面参照根据本发明的示例性实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机 或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,生成了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就生成出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以生成计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
图3A-3D示出根据示例性实施例的由去重迁移/复制逻辑在优化去重后的数据从内部存储系统到可移动存储系统的迁移/复制时执行的操作的流程图。当操作开始时,去重迁移/复制逻辑生成块引用表,该表包括内部存储系统上存储的虚拟磁带中汇总的全部多引用块(步骤302)。使用块引用表,去重迁移/复制逻辑生成块矩阵表,该表针对每个Vtape指示引用哪个块(步骤304)。使用块矩阵表,去重迁移/复制逻辑生成块矩阵表中针对每个Vtape的点的n维表示(步骤306)。
使用Vtape的表示作为n维空间中的点,去重迁移/复制逻辑计算每两个Vtape之间的度量值(步骤308)。去重迁移/复制逻辑将获得的度量值插入度量矩阵[M](步骤310)。去重迁移/复制逻辑确定要生成的初步集群数(步骤312)。去重迁移/复制逻辑搜索度量矩阵[M]以查找Vtape之间的最短距离(步骤314),然后生成具有在前集群-块引用部分的增强块矩阵表中的已标识集群数(步骤316)。去重迁移/复制逻辑通过确定在尽可能少的Vtape内具有最多公共块的集群来选择最佳集群(步骤318)。
一旦选定最佳集群,去重迁移/复制逻辑便通过判定[export-size]是否 大于可移动存储系统的可用容量[rsm-size],基于选定集群的[export-size]和可移动存储系统的可用容量[rsm-size]判定选定集群是否可存储在可移动存储系统上(步骤320)。如果在步骤320,去重迁移/复制逻辑判定[export-size]大于[rsm-size],则去重迁移/复制逻辑将集群排列添加到禁用集群列表(步骤322)。去重迁移/复制逻辑判定选定集群是否具有两个以上Vtape(步骤324)。如果在步骤324,选定集群包括两个以上Vtape,则去重迁移/复制逻辑从集群中删除最后添加的集群元素(步骤326),之后过程返回到步骤320。如果在步骤324,仅剩下两个Vtape,则删除其中一个Vtape将导致删除集群,去重迁移/复制逻辑将精简后的集群排列添加到禁用集群列表(步骤328),然后操作返回到步骤318。
如果在步骤320,去重迁移/复制逻辑判定集群的[export-size]小于可移动存储系统的可用容量[rsm-size],则去重迁移/复制逻辑判定[export-size]是否超过可移动存储系统的容量减去可选的预定安全裕度[rsm-threshold](步骤330)。如果在步骤330,[export-size]大于[rsm-threshold],则去重迁移/复制逻辑修改选定集群排列中不属于该集群一部分的引用以便不再引用这些集群(步骤332)。去重迁移/复制逻辑然后将集群导出到可移动存储系统(步骤334)。一旦导出Vtape集群,去重迁移/复制逻辑便删除所有与度量矩阵[M]中的集群以及所有其它集群的Vtape关联的项(步骤336)。此时,取决于迁移/复制过程的目的,去重迁移/复制逻辑可删除所有与来自内部存储系统的已导出集群关联的数据(步骤337)。去重迁移/复制逻辑判定是否存在仍待迁移/复制到不同的可移动存储系统的其它Vtape(步骤338)。如果在步骤338,存在仍待迁移/复制的其它Vtape,则操作返回到步骤314。如果在步骤338,没有其它Vtape,则操作结束。
如果在步骤330,[export-size]等于或小于[rsm-threshold],则去重迁移/复制逻辑判定是否存在其它仍需迁移/复制的Vtape(步骤340)。如果在步骤340,没有剩余其它Vtape,则去重迁移/复制逻辑提示用户是否应该继续迁移/复制过程(步骤342)。如果在步骤342,用户指示继续迁移/复制过程,则操作继续到步骤332。如果在步骤342,用户指示不继续迁移 /复制过程,则操作结束。
如果在步骤340,存在需要迁移/复制的其它Vtape,则去重迁移/复制逻辑生成增强块矩阵表中选定最佳集群的n维表示(步骤334)。去重迁移/复制逻辑计算所有Vtape点到选定最佳集群点的欧几里得距离(步骤346)并将获得的示例性欧几里得距离值插入Vtape-集群矩阵(步骤348)。去重迁移/复制逻辑然后将具有到选定最佳集群点的最短欧几里得距离的Vtape添加到选定最佳集群,前提是该集群排列不在禁用集群列表上(步骤350),然后操作继续到步骤316。
图4示出根据示例性实施例的由去重迁移/复制逻辑在组织去重后的数据从内部存储系统到可移动存储系统的迁移/复制时执行的操作的流程图。当操作开始时,去重迁移/复制逻辑通过生成度量矩阵[M]来确定每个所标识的Vtape的“最近邻”(步骤402)。基于度量矩阵[M],去重迁移/复制逻辑选择两个具有最短度量的Vtape作为开始指示(步骤404)。去重迁移/复制逻辑将这两个Vtape标记为排序的边(步骤406)。去重迁移/复制逻辑搜索与所标识的Vtape中的任一者具有下一最近距离的下一Vtape(步骤408)。去重迁移/复制逻辑将下一Vtape添加到次序中并将下一Vtape表示为新的Vtape边(步骤410)。去重迁移/复制逻辑然后判定是否存在需要组织的其它Vtape(步骤412)。如果在步骤412,存在其它Vtape,则去重迁移/复制逻辑通过使操作返回到步骤406来增强Vtape次序。
如果在步骤412,已组织所有Vtape,则去重迁移/复制逻辑确定可移动存储系统上剩余的容量(步骤414)。如果在步骤414,可移动存储系统上具有空闲空间,则去重迁移/复制逻辑基于确定的策略对空闲空间执行写入操作(步骤416)。根据步骤416,或者在步骤414确定可用存储系统上没有空闲空间,去重迁移/复制逻辑将所确定的配置中的数据写入可移动存储系统(步骤418),然后操作结束。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程 图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
因此,示例性实施例提供用于将去重后的数据迁移/复制到可移动存储系统,同时使数据对象块或对数据对象块的所有引用位于同一可移动介质段的机制。去重引擎执行去重过程,该过程选择与可适当地存储在一段可移动存储系统上的数据对象集相关的唯一块集。即,示例性实施例的机制从跟踪与数据对象关联的块的去重表标识要被迁移/复制到可移动存储系统的所有数据对象的唯一块。如果标识了可适当地存储在可移动存储系统上的类似块集群集,则该集群集被迁移/复制到可移动存储系统。
如上所述,应当理解,示例性实施例可采取完全的硬件实施例、完全的软件实施例或同时包含硬件和软件元素的实施例的形式。在一个实例实施例中,示例性实施例的机制在软件或程序代码中实现,该软件或程序代码包括—但不限于—固件、驻留软件、微代码等。
适合于存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线直接或间接连接到存储器元件的处理器。所述存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器。
输入/输出(I/O)设备(包括—但不限于—键盘、显示器、指点设备等)可以直接或通过中间I/O控制器与系统相连。网络适配器也可以被连接到系统以使所述数据处理系统能够通过中间专用或公共网络变得与其它数据处理系统或远程打印机或存储器件相连。调制解调器、电缆调制解调 器和以太网卡只是当前可用的网络适配器类型中的少数几种。
出于示例和说明目的给出了对本发明的描述,并且所述描述并非旨在是穷举的或是将本发明限于所公开的形式。对于本领域的普通技术人员来说,许多修改和变型都将是显而易见的,例如使用虚拟光盘Vdisk作为Vtape的备选实施例,这是因为诸如紧凑型磁盘(CD)、数字化通用磁盘(DVD)和蓝光磁盘(BD)的光盘也是可移动介质。实施例的选择和描述是为了最佳地解释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得本领域的其它普通技术人员能够理解本发明的具有各种修改的各种实施例。
Claims (16)
1.一种在数据处理系统中的用于优化去重后的数据从内部存储系统到可移动存储系统的迁移/复制的方法,所述方法包括:
基于存储在所述内部存储系统上的数据对象集的数量,确定要针对所述数据对象集生成的初步集群数;
基于所述数据对象集之间的最短距离生成所述初步集群数,其中每个集群包括一个或多个数据对象集,并且其中每个数据对象集包括一个或多个数据块;
通过标识在尽可能少的数据对象集内具有最大公共块数的集群,标识集群集中的选定集群;
判定所述选定集群的导出大小是否超过所述可移动存储系统的可用存储容量;
响应于所述选定集群的所述导出大小未超过所述可移动存储系统的所述可用存储容量,将所述选定集群导出到所述可移动存储系统;
判定所述选定集群的所述导出大小是否超过所述可移动存储系统的所述可用容量减去预定安全裕度;
响应于所述选定集群的所述导出大小超过所述可移动存储系统的所述可用容量减去所述预定安全裕度,将所述选定集群导出到所述可移动存储系统;
响应于所述选定集群的所述导出大小未超过所述可移动存储系统的所述可用容量减去所述预定安全裕度,判定是否存在仍待迁移/复制的其它数据对象集;
响应于存在仍待迁移/复制的其它数据对象集,将与该集群中已有的所述数据对象集具有下一最短距离的下一数据对象集添加到所述选定集群;
判定所述选定集群的所述导出大小是否超过所述可移动存储系统的所述可用存储容量;以及
响应于所述选定集群的所述导出大小未超过所述可移动存储系统的所述可用存储容量,将所述选定集群导出到所述可移动存储系统。
2.根据权利要求1的方法,其中所述选定集群中的一个数据对象集中的至少一个数据块引用所述选定集群中的另一数据对象集中的至少一个数据块。
3.根据权利要求1的方法,还包括:
在所述选定集群已被导出到所述可移动存储介质之后,排除进一步考虑迁移与所述选定集群关联的数据对象集。
4.根据权利要求3的方法,还包括:
在排除进一步考虑迁移与所述选定集群关联的数据对象集之后,将对所述数据对象集在所述可移动存储系统上的位置的引用插入所述内部存储系统;以及
从所述内部存储系统删除与所述选定集群关联的所有数据。
5.根据权利要求1的方法,还包括:
在将所述选定集群导出到所述可移动存储系统之前,将所述选定集群中不属于所述选定集群一部分的块数据引用修改为不再引用这些数据块。
6.根据权利要求1的方法,其中基于存储在所述内部存储系统上的数据对象集的数量,确定要针对所述数据对象集生成的初步集群数包括:
生成块引用表,该表包括存储在所述内部存储系统上的数据对象集中汇总的全部多引用块;
生成块矩阵表,该表针对每个数据对象集指示该数据对象集所引用的多引用块;
使用所述块矩阵表,生成所述块矩阵表中针对每个数据对象集的点的n维表示;
使用所述数据对象集的所述表示作为n维空间中的点,计算每个所述数据对象集之间的度量值,该度量值指示每个所述数据对象集之间的距离;以及
将所获得的度量值插入度量矩阵。
7.根据权利要求1的方法,还包括:
响应于所述选定集群的所述导出大小超过所述可移动存储系统的所述可用存储容量,将该集群的排列添加到禁用集群列表;
判定所述选定集群是否具有两个以上的数据对象集;
响应于所述选定集群具有两个以上的数据对象集,从该集群中删除最后添加的数据对象集;
判定所述选定集群的新导出大小是否超过所述可移动存储系统的所述可用存储容量;以及响应于所述选定集群的所述新导出大小未超过所述可移动存储系统的所述可用存储容量,将最佳集群导出到所述可移动存储系统。
8.根据权利要求1的方法,其中基于以下项中的至少一个确定所述数据对象集之间的距离:包括差值平方和之平方根的欧几里得距离;其中不计算平方根的欧几里得距离的变型;差值的绝对值之和;或从一个块到另一块的总访问时间。
9.一种用于优化去重后的数据从内部存储系统到可移动存储系统的迁移/复制的装置,包括:
处理器;以及
与所述处理器耦合的存储器,其中所述存储器包括指令,当被所述处理器执行时,所述指令使所述处理器:
基于存储在内部存储系统上的数据对象集的数量,确定要针对所述数据对象集生成的初步集群数;
基于所述数据对象集之间的最短距离生成所述初步集群数,其中每个集群包括一个或多个数据对象集,并且其中每个数据对象集包括一个或多个数据块;
通过标识在尽可能少的数据对象集内具有最大公共块数的集群,标识集群集中的选定集群;
判定所述选定集群的导出大小是否超过所述可移动存储系统的可用存储容量;
响应于所述选定集群的所述导出大小未超过所述可移动存储系统的所述可用存储容量,将所述选定集群导出到所述可移动存储系统;
判定所述选定集群的所述导出大小是否超过所述可移动存储系统的所述可用容量减去预定安全裕度;
响应于所述选定集群的所述导出大小超过所述可移动存储系统的所述可用容量减去所述预定安全裕度,将所述选定集群导出到所述可移动存储系统;
响应于所述选定集群的所述导出大小未超过所述可移动存储系统的所述可用容量减去所述预定安全裕度,判定是否存在仍待迁移/复制的其它数据对象集;
响应于存在仍待迁移/复制的其它数据对象集,将与该集群中已有的所述数据对象集具有下一最短距离的下一数据对象集添加到所述选定集群;
判定所述选定集群的所述导出大小是否超过所述可移动存储系统的所述可用存储容量;以及
响应于所述选定集群的所述导出大小未超过所述可移动存储系统的所述可用存储容量,将所述选定集群导出到所述可移动存储系统。
10.根据权利要求9的装置,其中所述选定集群中的一个数据对象集中的至少一个数据块引用所述选定集群中的另一数据对象集中的至少一个数据块。
11.根据权利要求9的装置,其中所述指令还使所述处理器:
在将所述选定集群导出到所述可移动存储系统之前,将所述选定集群中不属于所述选定集群一部分的块数据引用修改为不再引用这些数据块。
12.根据权利要求9的装置,其中用于基于存储在内部存储系统上的数据对象集的数量,确定要针对所述数据对象集生成的初步集群数的指令还使所述处理器:
生成块引用表,该表包括存储在所述内部存储系统上的数据对象集中汇总的全部多引用块;
生成块矩阵表,该表针对每个数据对象集指示该数据对象集所引用的多引用块;
使用所述块矩阵表,生成所述块矩阵表中针对每个数据对象集的点的n维表示;
使用所述数据对象集的所述表示作为n维空间中的点,计算每个所述数据对象集之间的度量值,该度量值指示每个所述数据对象集之间的距离;以及
将所获得的度量值插入度量矩阵。
13.根据权利要求9的装置,其中所述指令还使所述处理器:
响应于所述选定集群的所述导出大小超过所述可移动存储系统的所述可用存储容量,将该集群的排列添加到禁用集群列表;
判定所述选定集群是否具有两个以上的数据对象集;
响应于所述选定集群具有两个以上的数据对象集,从该集群中删除最后添加的数据对象集;
判定所述选定集群的新导出大小是否超过所述可移动存储系统的所述可用存储容量;以及响应于所述选定集群的所述新导出大小未超过所述可移动存储系统的所述可用存储容量,将最佳集群导出到所述可移动存储系统。
14.根据权利要求9的装置,其中所述指令还使所述处理器:
在所述选定集群已被导出到所述可移动存储介质之后,排除进一步考虑迁移与所述选定集群关联的数据对象集。
15.根据权利要求9的装置,其中所述指令还使所述处理器:
在排除进一步考虑迁移与所述选定集群关联的数据对象集之后,将对所述数据对象集在所述可移动存储系统上的位置的引用插入所述内部存储系统;以及
从所述内部存储系统删除与所述选定集群关联的所有数据。
16.根据权利要求9的装置,其中基于以下项中的至少一个确定所述数据对象集之间的距离:包括差值平方和之平方根的欧几里得距离;其中不计算平方根的欧几里得距离的变型;差值的绝对值之和;或从一个块到另一块的总访问时间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/307,763 US9489133B2 (en) | 2011-11-30 | 2011-11-30 | Optimizing migration/copy of de-duplicated data |
US13/307,763 | 2011-11-30 | ||
PCT/JP2012/007274 WO2013080464A1 (en) | 2011-11-30 | 2012-11-13 | Optimizing migration/copy of de-duplicated data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103959254A CN103959254A (zh) | 2014-07-30 |
CN103959254B true CN103959254B (zh) | 2016-08-17 |
Family
ID=48467872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280058164.9A Expired - Fee Related CN103959254B (zh) | 2011-11-30 | 2012-11-13 | 用于优化去重后的数据的迁移/复制的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9489133B2 (zh) |
EP (1) | EP2788877A4 (zh) |
JP (1) | JP2015505997A (zh) |
CN (1) | CN103959254B (zh) |
WO (1) | WO2013080464A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140122817A1 (en) * | 2012-10-31 | 2014-05-01 | Duke Browning | System and method for an optimized distributed storage system |
US9749414B2 (en) * | 2013-08-29 | 2017-08-29 | International Business Machines Corporation | Storing low retention priority data in a dispersed storage network |
US10484474B2 (en) | 2013-08-29 | 2019-11-19 | Pure Storage, Inc. | Rotating offline DS units |
US10601918B2 (en) | 2013-08-29 | 2020-03-24 | Pure Storage, Inc. | Rotating inactive storage units in a distributed storage network |
CN104361068B (zh) * | 2014-11-06 | 2017-06-16 | 华中科技大学 | 一种数据去重过程中的并行分块方法与系统 |
US20170060986A1 (en) * | 2015-08-31 | 2017-03-02 | Shine Security Ltd. | Systems and methods for detection of content of a predefined content category in a network document |
US10372674B2 (en) * | 2015-10-16 | 2019-08-06 | International Business Machines Corporation | File management in a storage system |
US9690512B2 (en) * | 2015-11-23 | 2017-06-27 | Samsung Electronics Co., Ltd. | Method of similarity testing by syndromes and apparatus therefore |
US10534716B2 (en) * | 2016-07-13 | 2020-01-14 | Seagate Technology Llc | Limiting access operations in a data storage device |
WO2018102392A1 (en) * | 2016-11-29 | 2018-06-07 | StoreReduce | Garbage collection system and process |
CN108280085B (zh) * | 2017-01-06 | 2021-07-27 | 工业和信息化部电信研究院 | 数据去重的方法及装置 |
US10503426B2 (en) * | 2017-07-12 | 2019-12-10 | International Business Machines Corporation | Efficient space allocation in gathered-write backend change volumes |
US10795583B2 (en) * | 2017-07-19 | 2020-10-06 | Samsung Electronics Co., Ltd. | Automatic data placement manager in multi-tier all-flash datacenter |
US10372681B2 (en) * | 2017-09-12 | 2019-08-06 | International Business Machines Corporation | Tape drive memory deduplication |
CN109491772B (zh) * | 2018-09-28 | 2020-10-27 | 深圳财富农场互联网金融服务有限公司 | 业务序号生成方法、装置、计算机设备和存储介质 |
US11416159B2 (en) * | 2019-04-29 | 2022-08-16 | EMC IP Holding Company LLC | Method and system for prioritizing critical data object storage during backup operations |
CN113448491B (zh) * | 2020-03-26 | 2024-05-17 | 伊姆西Ip控股有限责任公司 | 存储系统的数据迁移 |
CN114610227B (zh) * | 2020-12-09 | 2024-03-19 | 戴尔产品有限公司 | 将存储系统集群化以共享用于去重的数据模式 |
CN112597127B (zh) * | 2020-12-15 | 2024-08-23 | 深圳市汉云科技有限公司 | 跨集群的访问方法、装置、设备及存储介质 |
CN113590535B (zh) * | 2021-09-30 | 2021-12-17 | 中国人民解放军国防科技大学 | 一种用于去重存储系统的高效数据迁移方法和装置 |
WO2024051957A1 (en) * | 2022-09-09 | 2024-03-14 | Huawei Technologies Co., Ltd. | Method and apparatus for writing data to magnetic tape |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286156A (zh) * | 2007-05-29 | 2008-10-15 | 北大方正集团有限公司 | 基于元数据去除重复对象的方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4417321A (en) * | 1981-05-18 | 1983-11-22 | International Business Machines Corp. | Qualifying and sorting file record data |
US8027194B2 (en) * | 1988-06-13 | 2011-09-27 | Samsung Electronics Co., Ltd. | Memory system and method of accessing a semiconductor memory device |
US20040128511A1 (en) * | 2000-12-20 | 2004-07-01 | Qibin Sun | Methods and systems for generating multimedia signature |
US7330997B1 (en) * | 2004-06-03 | 2008-02-12 | Gary Odom | Selective reciprocal backup |
US8533777B2 (en) * | 2004-12-29 | 2013-09-10 | Intel Corporation | Mechanism to determine trust of out-of-band management agents |
GB0514529D0 (en) * | 2005-07-15 | 2005-08-24 | Ibm | Virtualisation engine and method, system, and computer program product for managing the storage of data |
US7669023B2 (en) | 2007-07-10 | 2010-02-23 | Hitachi, Ltd. | Power efficient storage with data de-duplication |
US8782368B2 (en) | 2007-10-25 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Storing chunks in containers |
US8447938B2 (en) | 2008-01-04 | 2013-05-21 | International Business Machines Corporation | Backing up a deduplicated filesystem to disjoint media |
US7979670B2 (en) | 2008-01-24 | 2011-07-12 | Quantum Corporation | Methods and systems for vectored data de-duplication |
US8086799B2 (en) | 2008-08-12 | 2011-12-27 | Netapp, Inc. | Scalable deduplication of stored data |
US8108638B2 (en) | 2009-02-06 | 2012-01-31 | International Business Machines Corporation | Backup of deduplicated data |
US8375182B2 (en) | 2009-02-10 | 2013-02-12 | Hewlett-Packard Development Company, L.P. | System and method for segmenting a data stream |
JP5595701B2 (ja) | 2009-09-16 | 2014-09-24 | 株式会社日立製作所 | ファイル管理方法及びストレージシステム |
US8321648B2 (en) * | 2009-10-26 | 2012-11-27 | Netapp, Inc | Use of similarity hash to route data for improved deduplication in a storage server cluster |
US8516450B2 (en) * | 2010-03-19 | 2013-08-20 | Oracle International Corporation | Detecting real-time invalid memory references |
US9507670B2 (en) * | 2010-06-14 | 2016-11-29 | Veeam Software Ag | Selective processing of file system objects for image level backups |
WO2012029258A1 (en) * | 2010-08-31 | 2012-03-08 | Nec Corporation | Storage system |
US8949208B1 (en) * | 2011-09-30 | 2015-02-03 | Emc Corporation | System and method for bulk data movement between storage tiers |
-
2011
- 2011-11-30 US US13/307,763 patent/US9489133B2/en not_active Expired - Fee Related
-
2012
- 2012-09-10 US US13/608,559 patent/US9524102B2/en not_active Expired - Fee Related
- 2012-11-13 CN CN201280058164.9A patent/CN103959254B/zh not_active Expired - Fee Related
- 2012-11-13 EP EP12853648.9A patent/EP2788877A4/en not_active Withdrawn
- 2012-11-13 WO PCT/JP2012/007274 patent/WO2013080464A1/en active Application Filing
- 2012-11-13 JP JP2014525219A patent/JP2015505997A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286156A (zh) * | 2007-05-29 | 2008-10-15 | 北大方正集团有限公司 | 基于元数据去除重复对象的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2015505997A (ja) | 2015-02-26 |
CN103959254A (zh) | 2014-07-30 |
WO2013080464A1 (en) | 2013-06-06 |
EP2788877A1 (en) | 2014-10-15 |
US20130138902A1 (en) | 2013-05-30 |
US9524102B2 (en) | 2016-12-20 |
EP2788877A4 (en) | 2015-10-21 |
US20130138883A1 (en) | 2013-05-30 |
US9489133B2 (en) | 2016-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103959254B (zh) | 用于优化去重后的数据的迁移/复制的方法和装置 | |
US10621142B2 (en) | Deduplicating input backup data with data of a synthetic backup previously constructed by a deduplication storage system | |
US9223660B2 (en) | Storage device to backup content based on a deduplication system | |
JP2013525881A5 (zh) | ||
CN104461390A (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
CN110515543B (zh) | 基于对象存储桶的快照方法、装置和系统 | |
US9213759B2 (en) | System, apparatus, and method for executing a query including boolean and conditional expressions | |
CN106775481B (zh) | 数据读取方法及设备 | |
CN114625696A (zh) | 文件恢复方法、装置、电子设备及存储介质 | |
CN112416879B (zh) | 一种基于ntfs文件系统的块级数据去重方法 | |
CN113821476A (zh) | 数据处理方法及装置 | |
CN111858144A (zh) | 存储管理的方法、设备和计算机程序产品 | |
KR101545216B1 (ko) | 데이터 모델링 방법 및 장치 | |
US20240143213A1 (en) | Fingerprint tracking structure for storage system | |
US20210117275A1 (en) | Method, device and computer readalbe medium for garbage collection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160817 |