CN114924687A - 存储装置、计算机系统及数据传送程序 - Google Patents

存储装置、计算机系统及数据传送程序 Download PDF

Info

Publication number
CN114924687A
CN114924687A CN202110986459.3A CN202110986459A CN114924687A CN 114924687 A CN114924687 A CN 114924687A CN 202110986459 A CN202110986459 A CN 202110986459A CN 114924687 A CN114924687 A CN 114924687A
Authority
CN
China
Prior art keywords
data
storage device
differential
data unit
fingerprint
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.)
Pending
Application number
CN202110986459.3A
Other languages
English (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN114924687A publication Critical patent/CN114924687A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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

本发明提供一种存储装置、计算机系统及数据传送程序。边缘存储装置(100)经由网络与能够以规定的数据块为单位来对文件的数据进行重复排除并进行管理的其他存储装置连接,且具有CPU(111),其中,CPU(111)在将新创建的文件或更新的文件的数据向其他存储装置传送的情况下,基于差分部分的大小和包含差分部分的数据块即差分数据块的指纹的大小,来判定是向核心存储装置发送差分部分还是向核心存储装置发送差分数据块的指纹,并基于判定结果,向核心存储装置发送差分部分或指纹。根据本发明,能够减少传送数据的存储装置之间的通信量。

Description

存储装置、计算机系统及数据传送程序
技术领域
本发明涉及用于在多个存储装置之间传送数据的技术。
背景技术
对在如混合云或边缘(Edge)-核心(Core)联合这样的基地之间联合的平台的需求不断提高。文件虚拟化功能是与这样的需求对应的技术。在文件虚拟化功能中有以字节单位来探测由边缘(Edge)存储器生成/更新的文件的数据并将其向核心(Core)存储器非同步迁移的功能、从存储器删除未从用户端访问的文件的存根化功能、及在从用户端再参照时从核心存储装置以字节单位获取对象的数据的召回功能等。
文件虚拟化功能中的最大的瓶颈是基地之间的网络传送(例如,WAN(Wide AreaNetwork)传送),要求削减网络通信量的技术。
在专利文献1中公开了以下技术(称为网络重复排除):在边缘计算数据块的指纹(FP),将FP向核心传送,在核心进行重复判定,由此,在核心削减存在FP相同的数据块时的数据块的传送。
现有技术文献
专利文献
专利文献1:美国专利第6928526号说明书。
发明内容
发明所要解决的问题
例如,根据专利文献1所公开的技术,有时未必对核心和边缘之间的网络中的通信量的削减有效。例如,在专利文献1的技术中,计算产生更新的传送对象的数据块的FP。在FP的计算中需要数据块的数据,在数据块内的大部分为存根化的区域(存根区域)的情况下,需要召回存根区域的数据,作为结果,网络的通信量可能增加。另外,在数据块内的更新区域少的情况下,由于在FP上通信,网络的通信量可能增加。
本发明是鉴于上述情况而提出的,其目的在于提供一种能够减少传送数据的存储装置之间的通信量的技术。
用于解决问题的技术手段
为了实现上述目的,本发明的一个方面提供一种存储装置,其具有处理器,且经由网络与能够以规定的分割数据单位为单位来对规定的数据单位的数据进行重复排除并进行管理的其他存储装置连接,其中,所述处理器,在将包含差分的数据单位的数据向所述其他存储装置传送的情况下,基于差分部分的大小和包含所述差分部分的分割数据单位即差分分割数据单位的指纹的大小,来判定是向所述其他存储装置发送所述差分部分还是向所述其他存储装置发送所述差分分割数据单位的指纹,基于判定结果,向所述其他存储装置发送所述差分部分或所述指纹。
发明效果
根据本发明,能够减少传送数据的存储装置之间的通信量。
附图说明
图1是表示第一实施例的计算机系统的结构的一例的图。
图2是表示第一实施例的边缘存储装置及核心存储装置的结构的一例的图。
图3是第一实施例的文件虚拟化管理信息的结构图。
图4是第一实施例的重复状态管理表的结构图。
图5是第一实施例的重复数据块管理表的结构图。
图6是第一实施例的重复判定表的结构图。
图7是第一实施例的传送重复数据块列表的结构图。
图8是第一实施例的文件迁移处理的一例的流程图。
图9是第一实施例的差分传送处理的一例的流程图。
图10是第一实施例的网络重复排除处理的一例的流程图。
图11是第一实施例的差分反映处理的一例的流程图。
图12是第二实施例的差分传送处理的一例的流程图。
图13是第三实施例的存根文件的重复排除处理的一例的流程图。
具体实施方式
参照附图对几个实施例进行说明。此外,以下说明的实施方式不限定权利要求书所记载的技术方案,另外,在实施方式中说明的诸要素及其组合并非都是发明的解决方案所必需的。
在以下的说明中,有时通过“AAA表”的表达对信息进行说明,但信息也可以用任何数据结构表达。即,为了表示信息不依赖数据结构,可以将“AAA表”称为“AAA信息”。
另外,在以下的说明中,有时将“程序”作为动作主体来对处理进行说明,但因为程序通过被处理器(例如CPU(Central Processing Unit))执行而适当地使用存储部(例如存储器)和/或接口设备等进行规定的处理,所以也可以将处理的动作主体设为处理器(或者具有该处理器的装置或系统)。另外,处理器也可以包括进行处理的一部分或全部的硬件电路。程序也可以从程序源安装到像计算机这样的装置中。程序源例如也可以是程序分发服务器或计算机可读的存储介质(例如便携性的存储介质)。另外,在以下的说明中,可以将两个以上的程序作为一个程序实现,也可以将一个程序作为两个以上的程序来实现。
实施例1
在第一实施例的计算机系统1中,在核心站点20中,进行对于文件(数据单位的一例)的可变长度重复排除处理。在此,可变长度重复排除是指通过规定的方法将文件的数据分割成可变长度数据块(分割数据单位的一例),并以可变长度数据块为单位进行重复排除的处理。
图1是表示第一实施例的计算机系统的结构的一例的图。
计算机系统1具有边缘站点10-1、10-2和核心站点20。边缘站点10-1、10-2和核心站点20之间经由网络30连接。网络30例如是WAN。此外,网络30不限于此,能够使用各种网络。另外,在图1所示的计算机系统1中,具有两个边缘站点10-1、10-2,但边缘站点的个数不限于此。
边缘站点10-1具有作为存储装置(第二存储装置)的一例的边缘存储装置100、用户端400以及管理终端500。边缘存储装置100、用户端400及管理终端500例如通过LAN(Local Area Network)相互连接。
边缘存储装置100例如使用HTTP(Hypertext Transfer Protocol)等协议来访问核心存储装置200。边缘存储装置100的具体结构以后叙述。
用户端400是能够进行各种信息处理的计算机等的信息处理装置。用户端400使用例如NFS(Network File System)或CIFS(Common Internet File System)、HTTP(HyperText Transfer Protocol)等协议,利用由边缘存储装置100提供的存储服务。
管理终端500进行边缘存储装置100的管理,在边缘存储装置100中存在异常时等对边缘存储装置100进行各种操作指示等。
边缘站点10-2具有作为存储装置(第二存储装置)的一例的边缘存储装置100和用户端400。此外,图1所示的边缘站点10-1、10-2的硬件结构仅为示例,只要是至少分别具有一台边缘存储装置100及用户端400的结构,则其台数没有限制,也可以具有其他硬件。
核心站点20具有作为存储装置(第一存储装置)的一例的核心存储装置200和用户端400。核心存储装置200作为存储于边缘站点10-1、10-2的边缘存储装置100中的文件(数据单位的一例)的备份目标来发挥作用。
图2是表示第一实施例的边缘存储装置及核心存储装置的结构的一例的图。此外,在图2中示出将边缘存储装置100和核心存储装置200构成为具有无论设为哪一个都能够动作的功能的存储器的例子。
存储器(边缘存储装置100、核心存储装置200)具有控制器110和存储系统130。
控制器110具有作为处理器的一例的CPU111、存储器112、缓存113、LAN接口(I/F)114、WAN I/F115、I/F116。这些结构通过例如母线等通信信道相互连接。
CPU111进行控制器110及存储器整体的动作控制。
存储器112例如是RAM(RANDOM ACCESS MEMORY),临时存储用于执行CPU111的动作控制的程序及数据。存储器112保存有网络存储程序P1、IO钩子(Hook)程序P3、本地存储程序P5、数据转移(Data Mover)程序P7,差分反映程序P9、及数据容量削减程序P11。此外,保存于存储器112中的各程序及信息也可以保存于后述的存储设备134。
网络存储程序P1通过被CPU111执行,接收来自用户端400等的读/写(Read/Write)等各种请求,处理该请求中所含的协议。例如,网络存储器程序P1处理NFS(Network FileSystem)或CIFS(Common Internet File System)、HTTP(HyperText Transfer Protocol)等协议。
IO钩子程序P3通过被CPU111执行,检测由网络存储程序P1进行的对于保存于存储系统130中的文件的操作。此外,I/O钩子程序P3也可以将对于目录或对象(数据单位的一例)的操作作为检测对象。
本地存储程序P5通过被CPU111执行,对网络存储程序P1提供文件系统或对象存储器。
数据转移程序P7将由IO钩子程序P3检测出的存储设备134内的文件迁移、存根化或还原到核心存储装置200。
差分反映程序P9通过被CPU111执行,接受从其他基地(其他站点)的数据转移程序P7对文件的数据更新,并将该数据更新反映到存储设备134。
数据容量削减程序P11通过被CPU111执行,利用内联或后期处理来对保存于存储设备134中的用户文件进行重复排除。
此外,在第一实施例中,在将图2所示存储器作为边缘存储装置100来使用的情况下,不执行差分反映程序P9和数据容量削减程序P11,也就是不进行重复排除或边缘存储装置100中的差分反映。因此,在将存储器仅作为边缘存储装置100来使用的情况下,也可以没有差分反映程序P9和数据容量削减程序P11。
缓存113例如是RAM,临时保存从用户端400写入的数据或从存储系统130读取的数据。LAN I/F114进行与站点内的其他装置(用户端400等)之间的通信。WAN I/F115在与其他站点(其他边缘站点10、核心站点20)的装置之间经由网络30进行通信。I/F116进行与存储系统130之间的通信。此外,在图1中,在I/F116上连接存储系统130,但也可以连接存储设备134。
存储系统130例如将FC-SAN(Fibre Channel Storage Area Network)等的块形式的存储器功能提供给控制器110。存储系统130具有作为处理器的一例的CPU131、存储器132、缓存133、存储设备134以及I/F136。
CPU131进行存储系统130的动作控制。存储器132例如是RAM,临时保存执行CPU131的动作控制的程序及数据。缓存133临时保存从控制器110写入的数据或从存储设备134读取的数据。I/F136进行存储设备134和控制器110之间的通信。存储设备134是例如硬盘或快闪存储器等,保存包含用户端400的用户使用的文件(用户文件)的各种文件。
另外,存储设备134保存文件虚拟化管理信息T10、重复状态管理表T20、重复数据块管理表T30以及重复判定表T40。这些信息及表的详情以后叙述。此外,在第一实施例中,将图2所示的存储器作为边缘存储装置100来使用的情况下,因为边缘存储装置100不进行重复排除,所以存储设备134也可以不保存重复状态管理表T20、重复数据块管理表T30以及重复判定表T40。
接下来,对文件虚拟化管理信息T10进行说明。
图3是第一实施例的文件虚拟化管理信息的结构图。
文件虚拟化管理信息T10针对每一用户文件而创建。此外,在该例中,示出与用户文件分开地存储有文件虚拟化管理信息T10的例子,但也可以将文件虚拟化管理信息T10保存于用户文件内。文件虚拟化管理信息T10具有用户文件管理信息T11和部分管理信息T12。
用户文件管理信息T11包含访问路径C11、文件状态C12以及文件ID C13。
访问路径C11是保存有与文件虚拟化管理信息T10对应的用户文件的核心存储装置200上的地址(访问路径)。文件状态C12表示与文件虚拟化管理信息T10对应的用户文件的状态。在文件的状态中存在:“Dirty(脏数据)”,其表示在用户文件中存在未向核心存储装置200反映的差分数据;“Cached(已缓存)”,其表示用户文件保存于核心文件200;以及“Stub(存根)”,其表示用户文件的至少一部分区域被存根化。文件ID C13是表示与文件虚拟化管理信息T10对应的用户文件的主体数据的标识符(文件ID)。文件ID用于主体数据的操作。
部分管理信息T12保存有在用户文件中进行更新、追加等时的与各个对应的部分对应的条目。部分管理信息T12的条目包含偏移(Offset)C16、长度(Length)C17、部分状态C18的字段。
在偏移C16中保存有对用户文件进行了更新等时的对应的部分的开始位置。在长度C17中保存有与条目对应的部分的开始位置起的数据长度。在部分状态C18中保存有与条目对应的部分的状态(部分状态)。在部分状态中存在:“Dirty(脏数据)”,其表示部分数据未反映到核心存储装置200,即上次的文件迁移处理(参照图8)之后进行了更新(也包括追加);“Cached(已缓存)”,其表示部分数据保存于核心存储装置200,即在本地(边缘存储装置100)和核心存储装置200中都有数据;以及“Stub(存根)”,其表示部分数据被存根化,即在文件迁移处理(参照图8)后从本地(边缘存储装置100)清除。
接下来,对重复状态管理表T20进行说明。
图4是第一实施例的重复状态管理表的结构图。
重复状态管理表T20针对每一用户文件而创建。重复状态管理表T20包含一个文件ID C21的字段和用户文件内的每个数据块的字段组(C22~C27)。
在文件ID C21中保存有与重复状态管理表T20对应的用户文件的主体数据的文件ID。
每个数据块的字段组包含文件内偏移C22、数据块长度C23、数据削减处理完成标志C24、数据块状态C25、重复数据块保存文件ID C26、参照偏移C27的字段。
在文件内偏移C22中保存有与字段组对应的数据块的用户文件内的开始位置。在数据块长度C23中保存有与字段组对应的数据块的数据长度。在数据削减处理完成标志C24中保存有表示与字段组对应的数据块是否完成数据削减处理的数据删除处理完成标志。数据删除处理完成标志在更新了数据块内的数据时设定为False(伪),在数据削减处理后设定为true(真)。在数据块状态C25中保存有与字段组对应的数据块的状态。作为数据块的状态,有表示数据块未与其他数据块重复的非重复和表示数据块与其他数据块重复的重复。此外,对于数据块状态为非重复的数据块,不在重复数据块保存文件ID C26及参照偏移C27中设定值。在重复数据块保存文件ID C26中保存有文件(重复数据块保存文件)的ID(文件ID),上述文件保存有与对应于字段组的数据块重复的数据块的数据。在参照偏移C27中保存有重复数据块保存文件内的偏移,上述重复数据块保存文件中保存有与对应于字段组的数据块重复的数据块(重复数据块)的数据。
接下来,对重复数据块管理表T30进行说明。
图5是第一实施例的重复数据块管理表的结构图。
重复数据块管理表T30是用于管理保存于重复数据块保存文件中的重复数据块的参照数的表,保存每个重复数据块保存文件的条目。重复数据块管理表T30的条目包含文件ID C31、偏移C32、数据块长度C33、参照数C34的字段。
在文件ID C31中保存与条目对应的重复数据块保存文件的主体数据的ID(文件ID)。在偏移C32中保存与条目对应的重复数据块保存文件内的各重复数据块的开始位置。在数据块长度C33中保存各重复数据块的数据长度。在参照数C34中保存从各重复数据块的用户文件参照的数(参照数)。
接下来,对重复判定表T40进行说明。
图6是第一实施例的重复判定表的结构图。
重复判定表T40是保存用于数据块的重复判定的信息的表,保存有核心存储装置200中所保存的每个数据块的条目。重复判定表T40的条目包含指纹C41、文件ID C42、偏移C43、数据块长度C44的字段。
在指纹C41中保存与条目对应的数据块的指纹。指纹是在数据块的数据中应用哈希函数的值,用于确认数据块的同一性(重复)。作为计算指纹的方法,也可以使用例如MD5(message digest algorithm 5)或SHA-1(Secure Hash Algorithm 1)等。在文件ID C42中保存文件的文件ID,上述文件保存与条目对应的数据块。在偏移C43中保存与条目对应的数据块的文件内的偏移。在数据块长度C44中保存与条目对应的数据块的数据长度。
接下来,对在后述的文件迁移处理中使用的传送重复数据块列表T50进行说明。
图7是第一实施例的传送重复数据块列表的结构图。
传送重复数据块列表T50管理关于在迁移对象(传送对象)的文件内具有差分的数据块(差分数据块:差分分割数据单位的一例)中的与核心存储装置200重复的数据块的核心存储装置200上的保存目的地。传送重复数据块列表T50保存每个数据块的条目。传送重复数据块列表T50的条目包含文件内偏移C51、数据块长度C52、重复数据块可能文件IDC53、参照偏移C54的字段。
在文件内偏移C51中保存与条目对应的数据块的迁移对象的文件内的偏移。在数据块长度C52中保存数据块的数据长度。在重复数据块保存文件ID C53中保存核心存储装置200上的重复数据块保存文件的文件ID,上述核心存储装置200上的重复数据块保存文件中保存与对应于条目的数据块重复的数据块。在参照偏移C54中保存重复数据块保存文件内的偏移,上述重复数据块保存文件中保存与对应于条目的数据块重复的数据块。
接下来,对在第一实施例的计算机系统1中迁移文件的文件迁移处理进行说明。
图8是第一实施例的文件迁移处理的一例的流程图。
在各边缘存储装置100中,通过控制器110的CPU111执行数据转移程序P7来进行文件迁移处理。文件迁移处理在满足规定条件的条件下,例如可以定期或不定期进行,也可以在用户端400对边缘存储装置100进行了I/O操作时执行。在文件迁移处理中,数据转移程序P7获取包含新创建或更新而成为差分的部分(差分部分)的文件,即文件状态C12为Dirty(脏数据)的文件作为处理对象的文件(对象文件)。获取文件状态C12为Dirty(脏数据)的文件的方法可以是爬取文件系统的方法,也可以是从记录了文件系统的操作的操作日志提取的方法。
S101:数据转移程序P7执行差分传送处理(参照图9)。在差分传送处理中,执行将对象文件的差分部分进行传送等而使其反映到核心存储装置200的处理。
S102:数据转移程序P7将对象文件的文件状态C12和与对象文件的差分部分对应的部分状态C18变更为Cached(已缓存),结束文件迁移处理。
接下来,对步骤S101的差分传送处理进行说明。
图9是第一实施例的差分传送处理的一例的流程图。
差分传送处理基本上为如下处理:将在边缘存储装置100中创建的文件及更新的文件的差分部分向进行可变长度重复排除的核心存储装置200传送,并反映到核心存储装置200。
S201:数据转移程序P7从对象文件的部分管理信息T12获取部分状态C18为Dirty(脏数据)的条目(与传送对象部分对应)作为传送部分列表。
S202:数据转移程序P7确认对象文件是否是包含存根化的区域的存根文件,即对象文件的文件状态C12是否是Stub(存根)。其结果,在对象文件是存根文件的情况下(S202:是),数据转移程序P7不进行对于传送对象部分的数据的网络重复排除处理(S206)等,使处理进入步骤S210。在此,在对象文件是存根文件的情况下,不进行网络重复排除处理等的原因在于,不能容易地估算存根化的数据的召回处理等中的传送的数据量。另一方面,在对象文件不是存根文件的情况下(S202:否),数据转移程序P7使处理进入步骤S203。
S203:数据转移程序P7利用滚动哈希等将对象文件分割成可变长度的数据块(可变长度数据块)。在此,滚动哈希是指,对于对象文件,将计算规定长度的窗口的数据的哈希值的处理一边错开窗口一边执行的处理,作为分割成可变长度数据块的方法,在算出的哈希值为规定的值的情况下,存在将该部分作为可变长度数据块的分割点的方法。例如能够采用Rabin-Karp算法作为分割成可变长度数据块的具体处理。此外,分割成可变长度数据块的处理不限于上述,也可以使用任意的处理。
对在S203中分割的各数据块(可变长度数据块)执行以下的步骤S204~209的处理。
S204:数据转移程序P7将分割的各数据块中的一个数据块作为处理对象的数据块(对象数据块),并获取对象数据块的管理信息(文件内偏移、数据块长度等)
S205:数据转移程序P7判定对象数据块内的部分状态为Dirty(脏数据)的部分(差分部分)的大小(数据块内Dirty(脏数据)大小)是否比用于后述的网络重复排除处理(S206)的数据块的指纹大小大。在此,在对象数据块内包含部分状态为Dirty(脏数据)的部分(差分部分)的数据块相当于差分数据块。其结果,在数据块内Dirty(脏数据)大小比指纹大小大的情况下(S205:是),通过执行网络重复排除处理,可能获得能够削减重复的数据的传送的效果,因此,数据转移程序P7使处理进入步骤S206。另一方面,在数据块内Dirty(脏数据)大小不比指纹大小大的情况下(S205:否),与执行网络重复排除处理相比,发送数据块内的脏数据(差分数据)的一方传送的数据量少,因此,数据转移程序P7不进行网络重复排除处理,使处理进入步骤S209。此外,在该情况下,在以后的处理中,将数据块内的差分数据向核心存储装置200发送。
此外,在估计为在核心存储装置200中存在与对象文件的数据块相同的数据的概率(网络重复排除率:预测比例)为100%或与其相近的值的情况下,基于上述的数据块内Dirty(脏数据)大小和指纹大小的网络重复排除处理的执行可否的判定为优选例。使用数据块内Dirty(脏数据)大小和指纹大小的网络重复排除处理的执行可否的判定不限于上述的比较。
另外,除了上述的数据块内Dirty(脏数据)大小和指纹大小之外,也可以将网络重复排除率用于网络重复排除处理的执行可否的判定。例如,也可以是,在满足指纹大小+数据块内Dirty(脏数据)大小×(1-网络重复排除率)<(数据块内Dirty(脏数据)大小)的情况下,使处理进入步骤S206,在不满足的情况下,使处理进入步骤S209。
例如,也可以基于文件的属性来确定网络重复排除率。例如,也可以是,如果文件的属性是加密文件,则判定为重复的可能性低,因此,将网络重复排除率设为低比率(例如10%),在文件的属性示出例如微软办公软件(注册商标)等文字处理软件或电子表格软件等的文件的情况下,判定为重复的可能性较高,因此,将网络重复排除率设为高比率(例如80%),根据文件的属性改变步骤S205的条件。
S206:数据转移程序P7将对象数据块的指纹向核心存储装置200发送,由核心存储装置200执行进行对象数据块的重复判定的网络重复排除处理(参照图10)。此外,在本例中,对每个数据块执行步骤S206,但也可以对满足步骤S205的条件的全部数据块综合进行步骤S206的处理。
S207:数据转移程序P7基于网络重复排除处理S206形成的结果来判定在核心存储装置200中是否存在与对象数据块重复的数据。其结果,在存在与对象数据块重复的数据的情况下(S207:是),数据转移程序P7使处理使步骤S208。另一方面,在不存在与对象数据块重复的数据的情况下(S207:否),数据转移程序P7使处理进入步骤S209。
S208:数据转移程序P7将对象数据块内的区域从传送部分列表删除,向传送重复数据块列表T50追加包含对象数据块的文件内偏移、数据块长度、与数据块重复的核心存储装置200上的数据块的文件ID、参照偏移的条目。
S209:数据转移程序P7判定对象数据块是否是数据块的末尾(数据块末尾)。在对象数据块是数据块末尾的情况下(S209:是),数据转移程序P7使处理进入步骤S210。另一方面,在对象数据块不是数据块末尾的情况下(S209:否),数据转移程序P7使处理进入步骤S204,进行对接下来的数据块的处理。
S210:数据转移程序P7使用文件ID从用户文件的主体文件获取记录于传送部分列表的部分的数据。
S211:数据转移程序P7获取对象文件向核心存储装置200的访问路径(对象文件的访问路径C11的值),对核心存储装置200进行该访问路径的更新请求。此时,数据转移程序P7传送在步骤S210中获取的数据、传送部分列表以及传送重复数据块列表T50。
S212:核心存储装置200的差分反映程序P9(严格执行差分反映程序P9的CPU111)受理来自边缘存储装置100的更新请求,对由更新请求指定的访问路径进行差分反映处理(参照图11)。
S213:差分反映程序P9对边缘存储装置100返回更新完成的响应。此外,边缘存储装置100的数据转移程序P7通过接收该响应,结束差分传送处理。
接下来,对步骤S206的网络重复排除处理进行说明。
图10是第一实施例的网络重复排除处理的一例的流程图。
网络重复排除处理为如下处理:确认与边缘存储装置100相同的数据块是否存在于核心存储装置200,在存在的情况下,获取重复数据块的存储目的地。
S301:数据转移程序P7计算对象数据块的指纹。例如,相对于对象数据块,也可以将指纹设为由SHA-1算出的哈希值。
S302:数据转移程序P7向核心存储装置200发送确认与对象数据块向的数据是否存在的请求(重复检索请求)。在该重复检索请求中包含在步骤S301中算出的对象数据块的指纹。
S303:核心存储装置200的数据容量削减程序P11受理来自边缘存储装置100的重复检索请求,参照重复判定表T40,确认是否存在与在重复检索请求中所含的指纹(对象指纹)一致的数据块(重复数据块)。其结果,在与指纹一致的数据块存在的情况下(S303:是),数据容量削减程序P11使处理进入步骤S304。另一方面,在不存在与指纹一致的数据块的情况下(S303:否),数据容量削减程序P11使处理进入步骤S305。
此外,也可以在保存与指纹一致的数据块的文件不是重复数据块保存文件且用户文件且重复状态管理表T20的数据块状态C25的数据块状态为非重复的情况下,进行该文件的数据块的指纹的再计算,确认在指纹中没有变更,即未更新数据块。而且,也可以进行对象数据块的重复排除,在重复数据块保存文件中保存该数据块,将重复判定表T40的与该数据块对应的条目的文件ID等更新到重复数据块保存文件的文件ID等。
S304:核心存储装置200的数据容量削减程序P11将重复判定表T40的与对象指纹一致的条目的文件ID C42、偏移C43、数据块长度C44的值返回给边缘存储装置100,结束网络重复排除处理。
S305:核心存储装置200的数据容量削减程序P11将不存在与对象数据块相同的数据的情况返回给边缘存储装置100,结束网络重复排除处理。
接下来,对步骤S212的差分反映处理进行说明。
图11是第一实施例的差分反映处理的一例的流程图。
差分反映处理为如下处理:核心存储装置200的差分反映程序P9受理边缘存储装置100的更新请求,对由更新请求指定的访问路径进行使用指定的传送部分列表的更新的反映和使用传送重复数据块列表T50的重复排除结果的反映。
S401:差分反映程序P9获取一个受理的传送部分列表的条目(对象条目)。
S402:差分反映程序P9对由更新请求指定的访问路径反映对象条目示出的区域(更新区域、差分区域)的更新。
S403:差分反映程序P9参照重复状态管理信息T20,确认在与由更新请求指定的访问路径对应的文件的更新区域中是否包含数据块状态C25的数据块状态为重复的条目。其结果,在包含数据块状态为重复的条目的情况下(S403:是),差分反映程序P9使处理进入步骤S404。另一方面,在不包含数据块状态为重复的条目的情况下(S403:否),差分反映程序P9使处理进入步骤S405。
S404:差分反映程序P9从与数据块状态为重复的条目中的重复数据块保存文件IDC26的文件ID和参照偏移C27的参照偏移对应的、重复数据块管理表T30的条目中的参照数C34的参照数减去1。
S405:差分反映程序P9将重复状态管理表T20的与更新区域对应的条目中的数据削减处理标志C24的值变更为False(伪),将数据块状态C25的值变更为非重复。
S406:差分反映程序P9确认对象条目是否是传送部分列表的末尾。其结果,在对象条目是末尾的情况下(S406:是),差分反映程序P9使处理进入步骤S407。另一方面,在对象条目不是末尾的情况下(S406:否),差分反映程序P9使处理进入步骤S401,将接下来的条目作为处理对象进行后续的处理。
S407:差分反映程序P9获取一个受理的传送重复数据块列表T50的条目作为处理对象的条目(对象条目)。
S408:差分反映程序P9在与对象条目的重复数据块保存文件ID C53的文件ID和参照偏移C54的参照偏移对应的重复数据块管理表T30的条目的参照数C34的参照数上加1。
S409:差分反映程序P9参照与由更新请求指定的访问路径对应的文件的重复状态管理信息T20,确认在与传送重复数据块列表T50的对象条目的文件内偏移C51的偏移和数据块长度C52的数据块长度对应的区域是否包含数据块状态C25为重复的数据块(重复数据块)。其结果,在包含重复数据块的情况下(S409:是),差分反映程序P9使处理进入步骤S410。另一方面,在不包含重复数据块的情况下(S409:否),差分反映程序P9使处理进入步骤S411。
S410:差分反映程序P9从与重复状态管理信息T20的重复数据块的条目的重复数据块保存文件ID C26的文件ID和参照偏移C27的偏移对应的重复数据块管理表T30的条目中的参照数C34的参照数减去1。
S411:差分反映程序P9在重复状态管理信息T20的重复数据块的条目中对文件内偏移C22和数据块长度C23设定传送重复数据块列表T50的对象条目的文件内偏移C51的偏移和数据块长度C52的数据块长度,对数据削减处理标志C24设定true(真),对数据块状态C25设定重复,对重复数据块保存文件ID C26和参照偏移C27设定传送重复数据块列表T50的对象条目的重复数据块保存文件ID C53的文件ID和参照偏移C54的偏移。
S412:差分反映程序P9确认对象条目是否是传送重复数据块列表T50的末尾。其结果,在对象条目是末尾的情况下(S412:是),差分反映程序P9结束差分反映处理。另一方面,在对象条目不是末尾的情况下(S412:否),差分反映程序P9使处理进入步骤S407,进行对接下来的条目的后续的处理。
根据上述的文件迁移处理,因为基于指纹大小和数据块内Dirty(脏数据)大小判定是进行网络重复排除处理(S206),还是不进行网络重复排除处理而发送脏数据(S211),并执行判定结果,所以能够抑制边缘存储装置100和核心存储装置200之间的数据的传送量。
实施例2
接下来,对第二实施例的计算机系统进行说明。此外,有时对与第一实施例的计算机系统相同的部分标注相同的符号并省略重复的说明。
第二实施例的计算机系统的结构与图1所示的计算机系统相同。
第二实施例的边缘存储装置100及核心存储装置200的构成与图2所示的第一实施例的边缘存储装置100及核心存储装置200相同。此外,第二实施例中的、数据削减程序P11将固定长度的数据块(固定长度数据块:分割数据单位的一例)作为对象进行重复排除(固定长度重复排除)的点不同。
第二实施例的文件虚拟化管理信息T10与图3所示的第一实施例的文件虚拟化管理信息T10相同。
第二实施例的重复状态管理表T20与图4所示的第一实施例的重复状态管理表T20相同。此外,在第二实施例中,因为数据削减程序P11进行固定长度重复排除,所以在重复状态管理表T20中,也可以没有数据块长度C23的字段。
第二实施例的重复数据块管理表T30与图5所示的第一实施例的重复数据块管理表T30相同。此外,在第二实施例中,因为数据削减程序P11进行固定长度重复排除,所以在重复数据块管理表T30中,也可以没有数据块长度C33的字段。
第二实施例的重复判定表T40与图6所示的第一实施例的重复判定表T40相同。此外,在第二实施例中,因为数据削减程序P11进行固定长度重复排除,所以在重复判定表T40中,也可以没有数据块长度C44的字段。
第二实施例的传送重复数据块列表T50与图7所示的第一实施例的传送重复数据块列表T50相同。此外,在第二实施例中,因为数据削减程序P11进行固定长度重复排除,所以在传送重复数据块列表T50中也可以没有数据块长度C52的字段。
第二实施例的文件迁移处理与图8所示的第一实施例的文件迁移处理相同。但是,在第二实施例的文件迁移处理中,进行图12所示的差分传送处理作为步骤S101的差分传送处理。
接下来,对差分传送处理进行说明。
图12是第二实施例的差分传送处理的一例的流程图。此外,对与图8所示的差分传送处理相同的部分标注相同的符号,省略重复的说明。
差分传送处理基本上为如下处理:将在边缘存储装置100中创建的文件及更新的文件的差分部分向进行固定长度重复排除的核心存储装置200传送,并反映到核心存储装置200。
对将文件以固定长度单位分割而成的各固定长度数据块执行以下的步骤S501~504、S205~S209的处理。此外,也可以仅将在传送部分列表的传送部分中所含的固定长度数据块作为对象实施步骤S501以后的处理。
S501:数据转移程序P7将各个固定长度数据块中的一个数据块作为处理对象的数据块(对象数据块),并获取对象数据块的管理信息(文件内偏移、数据块长度等)。
S502:数据转移程序P7确认在对象数据块内是否包含存根化的区域(存根区域),具体而言,参照部分管理信息T12,确认在对象数据块内是否存在部分状态C18为Stub(存根)的部分。其结果,在对象数据块内存在存根区域的情况下(S502:是),数据转移程序P7使处理进入步骤S503。另一方面,在对象数据块内不存在存根区域的情况下(S502:否),数据转移程序P7使处理进入步骤S205。
S503:数据转移程序P7确认对象数据块内的部分状态为Dirty(脏数据)的部分(差分部分)的大小(数据块内Dirty(脏数据)大小)是否比在用于网络重复排除处理S206的指纹大小上加上数据块内的Stub(存根)的区域的大小(数据块内Stub(存根)大小)的大小(即,召回存根区域的数据并传送指纹大小时的传送的合计的数据大小)大。其结果,在数据块内Dirty(脏数据)大小大的情况下(S503:是),存在召回存根区域的数据并发送指纹的一方可能能够抑制数据量,因此,数据转移程序P7使处理进入步骤S504。另一方面,在数据块内Dirty(脏数据)大小不大的情况下(S503:否),意味着传送差分部分的数据更能够压制数据量,因此,数据转移程序P7使处理进入步骤S209。
此外,在估计为在核心存储装置200中存在与对象文件的数据块相同的数据的概率(网络重复排除率:预测比例)为100%或与其相近的值得到情况下,基于上述的数据块内Dirty(脏数据)大小、指纹大小以及数据块内Stub(存根)大小的网络重复排除处理的执行可否的判定为优选例。使用数据块内Dirty(脏数据)大小、指纹大小以及数据块内Stub(存根)大小的网络重复排除处理的执行可否的判定不限于上述的比较。
另外,除了上述的数据块内Dirty(脏数据)大小、指纹大小以及数据块内Stub(存根)大小之外,也可以将网络重复排除率用于网络重复排除处理的执行可否的判定。例如,在满足指纹大小+数据块内Stub(存根)大小+数据块内Dirty(脏数据)大小×(1-网络重复排除率)<(数据块内Dirty(脏数据)大小)的情况下,使处理进入步骤S504,在不满足的情况下,使处理进入步骤S209。
S504:数据转移程序P7从核心存储装置200召回(读出)数据块内的存根区域的数据,使处理进入步骤S206。在步骤S206以后,在第二实施例中,因为数据块长度固定,所以也可以跳过与数据块长度相关的处理。
根据上述的第二实施例,即使在数据块内包含存根区域的情况下,也能够抑制边缘存储装置100和核心存储装置200之间的数据的传送量。
实施例3
接下来,对第三实施例的计算机系统进行说明。此外,有时对与第一实施例的计算机系统相同的部分标注相同的符号并省略重复的说明。
第三实施例的计算机系统的结构与图1所示的计算机系统相同。
第三实施例的边缘存储装置100及核心存储装置200的结构与图2所示的第一实施例的边缘存储装置100及核心存储装置200相同。此外,在第三实施例中,在边缘存储装置100中数据削减程序P11动作而进行可变长度重复排除的点不同。此外,在核心存储装置200中,数据削减程序P11可以不动作,也可以动作,进行与第一实施方式相同的重复排除。
第三实施例的文件虚拟化管理信息T10与图3所示的第一实施例的文件虚拟化管理信息T10相同,但保存于边缘存储装置100。
第三实施例的重复状态管理表T20与图4所示的第一实施例的重复状态管理表T20相同,但保存于边缘存储装置100。
第三实施例的重复判定表T40与图6所示的第一实施例的重复判定表T40相同,但保存于边缘存储装置100。
在第三实施例中,不需要传送重复数据块管理表T50。
接下来,对第三实施例的存根文件的重复排除处理进行说明。
图13是第三实施例的存根文件的重复排除处理的一例的流程图。此外,对与图8、9等的处理相同的部分标注相同的符号,省略重复的说明。
在各边缘存储装置100中,通过控制器110的CPU111执行数据容量削减程序P11来进行存根文件的重复排除处理。存根文件的重复排除处理在满足规定的条件的情况下,例如可以定期或不定期地进行,也可以在用户端400对边缘存储装置100进行了I/O操作(例如数据写入操作)时执行。
S603:边缘存储装置100的数据转移程序P7从与对象文件对应的用户文件管理信息T11获取向核心存储装置200的访问路径(对象文件的访问路径C11的值),对核心存储装置200请求该访问路径的更新和更新区域的指纹的计算。此时,数据转移程序P7传送在S210中获取到的数据、传送部分列表、以及与对象文件的数据块的分割点相关的信息(分割点信息)。
S604:核心存储装置200的差分反映程序P9对由更新请求指定的访问路径反映传送部分列表的各条目示出的区域(更新区域、差分区域)的更新。
S605:差分反映程序P9通过滚动哈希等处理将更新的文件分割成可变长度数据块,并计算数据块的分割点。
S606:差分反映程序P9比较算出的分割点和受理的分割点信息,计算分割点变更了的数据块及更新了数据的数据块的指纹,创建包含算出的数据块的偏移、数据块长度及保存有指纹的条目的指纹列表。
S607:差分反映程序P9将算出的分割点的信息(变更后分割点信息)和指纹列表返回给边缘存储装置100。
S609:数据转移程序P7向数据容量削减程序P11返回变更后分割点信息和指纹列表。数据容量削减程序P11基于返回的变更后分割点信息更新重复状态管理信息T20。在此,数据容量削减程序P11在与分割点变更了的数据块对应的条目中将数据削减处理完成标志C24的值变更为False(伪),将数据块状态C25的值变更为非重复。此外,在该条目的数据块状态C25为重复的情况下,数据容量削减程序P11从与重复数据块保存文件ID C26的文件ID和参照偏移C27的偏移对应的重复数据块管理表T30的条目的参照数C34的参照数减去1。
S610:数据容量削减程序P11从指纹列表获取一个作为处理对象的条目(对象条目)。
S611:数据容量削减程序P11确认在重复判定表T40中是否存在与对象条目的指纹一致的条目。其结果,在存在一致的条目的情况下,数据容量削减程序P11使处理进入步骤S612。在不存在的情况下,数据容量削减程序P11使处理进入步骤S613。
S612:数据容量削减程序P11对与对象条目对应的数据块进行重复排除。
S613:数据容量削减程序P11将与对象条目对应的数据块追加至重复判定表T40。
S614:数据容量削减程序P11判定对象条目是否是指纹列表的末尾。其结果,在对象条目是末尾的情况下,数据容量削减程序P11结束存根文件的重复排除处理。另一方面,在对象条目不是指纹列表的末尾的情况下,数据容量削减程序P11使处理进入步骤S610,将接下来的条目作为处理对象进行后续的处理。
此外,示出了由边缘存储装置100进行可变长度重复排除的例子,但本发明不限于此,也可以由边缘存储装置100进行固定长度重复排除,在该情况下,不在步骤S605中进行分割点计算,仅对更新了的数据块计算指纹,不进行步骤S609的处理即可。
在第三实施例中,文件迁移处理进行与图8所示的第一实施例相同的处理即可。另外,在第三实施例中,步骤101中的差分传送处理也可以不进行图9所示的第一实施例中的差分传送处理中的步骤S202~S208。另外,在第三实施例中,步骤S212中的差分反映处理也可以不进行图11所示的第一实施例中的差分反映处理中的步骤S403~405、S407~S412。
在上述的第三实施例中,在文件是具有存根区域的存根文件的情况下,因为不需要将文件的存根区域的数据从核心存储装置200向边缘存储装置100发送,所以能够抑制边缘存储装置100和核心存储装置200之间的数据的传送量。
此外,本发明不限于上述的实施例,在不脱离本发明的主旨的范围内能够适当地变形而实施。
例如,在上述实施例中的差分传送处理中,在步骤S205中,基于指纹大小和数据块内Dirty(脏数据)大小来判定进行网络重复排除处理或者发送差分部分,但本发明不限于此,也可以基于第一合计金额和第二合计金额来判定是将差分部分向核心存储装置200发送还是将差分数据块的指纹向核心存储装置200发送,上述第一合计金额是将基于数据块的差分部分的大小的通信中的计费金额、和使用包含差分的数据块(差分数据块)的差分部分对核心存储装置200中的差分数据块判定与核心存储装置200的数据块的重复的网络重复排除处理的计费金额合计的合计金额,上述第二合计金额是将基于数据块的指纹的大小的通信中的计费金额、和使用差分数据块的指纹来对核心存储装置200中的差分数据块判定与核心存储装置200的数据块的重复的处理的计费金额合计的金额。
具体而言,也可以判定为:在满足每一网络传送量的计费金额*(指纹大小+数据块内Dirty(脏数据)大小×(1-网络重复排除率))+每一计算量的计费金额*核心存储装置200的网络重复排除处理的计算量<每一网络传送量的计费金额*数据块内Dirty(脏数据)大小)+每一计算量的计费金额*(核心存储装置200中的差分反映处理和网络重复排除处理的计算量)的式子的情况下,进行将差分数据块的指纹向核心存储装置200发送的网络重复排除处理,在不满足上述式子的情况下,将差分部分向核心存储装置200发送。据此,不仅仅着眼于传送时的数据量的削减,还能够增加传送的计费金额和处理的计费金额而进行适当的数据传送。
另外,在上述实施方式中,也可以由硬件电路进行CPU所进行了的处理的一部分或全部。另外,上述实施方式中的程序可以从程序源安装。程序源也可以是程序分发服务器或存储介质(例如便携性的存储介质)。
符号说明
1…计算机系统,10、10-1、10-2…边缘站点,20…核心站点,30…网络,100…边缘存储装置,110…控制器,111…CPU,112…存储器,113…缓存,114…LAN I/F,115…WAN I/F,116…I/F,130…存储系统,131…CPU,132…存储器,133…缓存,134…存储设备,136…I/F,200…核心存储装置,400…用户端。

Claims (11)

1.一种存储装置,其具有处理器,且经由网络与能够以规定的分割数据单位为单位来对规定的数据单位的数据进行重复排除并进行管理的其他存储装置连接,其特征在于:
所述处理器,
在将包含差分的数据单位的数据向所述其他存储装置传送的情况下,基于差分部分的大小和包含所述差分部分的分割数据单位即差分分割数据单位的指纹的大小,来判定是向所述其他存储装置发送所述差分部分还是向所述其他存储装置发送所述差分分割数据单位的指纹,
基于判定结果,向所述其他存储装置发送所述差分部分或所述指纹。
2.根据权利请求1所述的存储装置,其特征在于,
所述分割数据单位是固定长度的数据块,
所述处理器,
在将包含差分的数据单位的数据向所述其他存储装置传送的情况下,且所述包含差分的数据单位中的包含差分部分的差分分割数据单位即差分数据块中包含被存根化的存根区域的情况下,基于所述差分数据块的差分部分的大小、所述存根区域的大小以及所述差分数据块的指纹的大小,来判定是向所述其他存储装置发送所述差分部分还是从所述其他存储器获取所述存根区域的数据,
在判定为从所述其他存储器获取所述存根区域的数据的情况下,向所述其他存储器发送所述存根区域的数据的发送请求,从所述其他存储器接收所述存根区域的数据,使用接收到的所述存根区域的数据来计算所述差分数据块的指纹,并向所述其他存储装置发送所述差分数据块的指纹。
3.根据权利请求1所述的存储装置,其特征在于,
所述分割数据单位是可变长度的数据块,
所述处理器,在将包含差分的数据单位的数据向所述其他存储装置传送的情况下,且所述包含差分的数据单位中的包含差分部分的差分分割数据单位即差分数据块中包含存根化的存根区域的情况下,向所述其他存储装置发送所述差分部分。
4.根据权利请求1所述的存储装置,其特征在于,
所述处理器根据所述数据单位的属性来改变条件,该条件是用于判定是向所述其他存储装置发送所述差分部分还是向所述其他存储装置发送所述差分分割数据单位的指纹的、基于所述差分部分的大小和所述差分分割数据单位的指纹的大小的条件。
5.根据权利请求1所述的存储装置,其特征在于,
所述处理器,在将包含差分的数据单位的数据向所述其他存储装置传送的情况下,基于所述差分分割数据单位的所述差分部分的大小、所述差分分割数据单位的指纹的大小、以及对所述数据单位的分割数据单位表示与所述其他存储装置的分割数据单位重复的可能性的预测比例,来判定是向所述其他存储装置发送所述差分部分还是向所述其他存储装置发送所述差分分割数据单位的指纹。
6.根据权利请求5所述的存储装置,其特征在于,
所述分割数据单位是可变长度的数据块,
所述差分分割数据单位是差分数据块,
所述处理器,在将包含差分的数据单位的数据向所述其他存储装置传送的情况下,在满足(所述差分数据块的指纹的大小)+(所述数据单位的所述数据块的差分部分的大小)×(1-预测比例)<(所述数据单位的所述数据块的差分部分的大小)时,判定为向所述其他存储装置发送所述差分数据块的指纹,在不满足时,判定为向所述其他存储装置发送所述差分部分。
7.根据权利请求5所述的存储装置,其特征在于,
所述分割数据单位是固定长度的数据块,
所述差分分割数据单位是差分数据块,
所述处理器,在将包含差分的数据单位的数据向所述其他存储装置传送的情况下,且所述包含差分的数据单位中的包含差分部分的差分数据块中包含被存根化的存根区域的情况下,在满足(所述差分数据块的指纹的大小)+(所述差分数据块内的存根区域的大小)+(所述数据单位的所述数据块的差分部分的大小)×(1-预测比例)<(所述数据单位的所述数据块的差分部分的大小)时,判定为从所述其他存储器获取所述存根区域的数据,在不满足时,判定为向所述其他存储装置发送所述差分部分。
8.根据权利请求1所述的存储装置,其特征在于,
所述处理器,在将包含差分的数据单位的数据向所述其他存储装置传送的情况下,基于第一合计金额和第二合计金额来判定是向所述其他存储装置发送所述差分部分还是向所述其他存储装置发送所述差分分割数据单位的指纹,
所述第一合计金额是将基于所述数据单位的所述分割数据单位的差分部分的大小进行的通信中的计费金额、和使用所述分割数据单位的差分部分来判定对于所述其他存储装置中的所述差分分割数据单位的与所述其他存储装置的分割数据单位的重复的处理的计费金额合计而得的金额,
所述第二合计金额是将基于所述差分分割数据单位的指纹的大小进行的通信中的计费金额、和使用所述差分分割数据单位的指纹来判定对于所述其他存储装置中的所述差分分割数据单位的与所述其他存储装置的分割数据单位的重复的处理的计费金额合计而得的金额。
9.一种存储装置,其经由网络与其他存储装置连接,且具有处理器,其特征在于,
所述其他存储装置存储被所述存储装置管理的数据单位中的被存根化的存根区域的数据,
所述处理器,在包含差分的数据单位具有存根区域的情况下,将差分部分的数据向所述其他存储装置发送,
从所述其他存储装置接收包含所述数据单位的所述差分部分的分割数据单位的指纹,
基于包含所述差分部分的分割数据单位的指纹,以所述分割数据单位为单位来对所述包含差分的数据单位执行重复排除。
10.一种计算机系统,其包括能够以规定的分割数据单位为单位来对规定的数据单位的数据进行重复排除并管理的第一存储装置和经由网络与所述第一存储装置连接的第二存储装置,其特征在于,
所述第二存储装置,在将包含差分的数据单位存储于所述第一存储装置的情况下,基于差分部分的大小和包含所述差分部分的分割数据单位即差分分割数据单位的指纹的大小,来判定是向所述第一存储装置发送所述差分部分还是向所述第一存储装置发送所述差分分割数据单位的指纹,并基于判定结果,向所述第一存储装置发送所述差分部分或所述指纹,
所述第一存储装置,
在从所述第二存储装置接收到所述差分部分的情况下,计算所述差分分割数据单位的指纹,并基于计算出的指纹来进行所述差分分割数据单位与存储于所述第一存储装置中的其他分割数据单位的重复判定,
在从所述第二存储装置接收所述指纹的情况下,基于所述指纹来进行所述差分分割数据单位与存储于所述第一存储装置中的其他分割数据单位的重复判定,
将所述重复判定的结果向所述第一存储装置发送。
11.一种数据传送程序,其由计算机执行,该计算机经由网络与能够以规定的分割数据单位为单位来对规定的数据单位的数据进行重复排除并进行管理的存储装置连接,其特征在于:
在将包含差分的数据单位向所述存储装置传送的情况下,使所述计算机基于差分部分的大小和包含所述差分部分的分割数据单位即差分分割数据单位的指纹的大小,来判定是向所述存储装置发送所述差分部分还是向所述存储装置发送所述差分分割数据单位的指纹,并基于判定结果,向所述其他存储装置发送所述差分部分或所述指纹。
CN202110986459.3A 2021-02-12 2021-08-26 存储装置、计算机系统及数据传送程序 Pending CN114924687A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-021300 2021-02-12
JP2021021300A JP7282114B2 (ja) 2021-02-12 2021-02-12 ストレージ装置

Publications (1)

Publication Number Publication Date
CN114924687A true CN114924687A (zh) 2022-08-19

Family

ID=82320261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110986459.3A Pending CN114924687A (zh) 2021-02-12 2021-08-26 存储装置、计算机系统及数据传送程序

Country Status (3)

Country Link
US (1) US11372570B1 (zh)
JP (1) JP7282114B2 (zh)
CN (1) CN114924687A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419401B2 (en) * 2016-01-08 2019-09-17 Capital One Services, Llc Methods and systems for securing data in the public cloud
CN116909492B (zh) * 2023-09-12 2023-12-08 合肥康芯威存储技术有限公司 一种存储设备及其控制方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928526B1 (en) 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
US10198462B2 (en) 2012-04-05 2019-02-05 Microsoft Technology Licensing, Llc Cache management
US9141301B1 (en) * 2012-06-13 2015-09-22 Emc Corporation Method for cleaning a delta storage system
GB2525773A (en) 2013-01-24 2015-11-04 Hitachi Ltd Environmental setting server, computer system, and environmental setting method
US20160150012A1 (en) * 2014-11-25 2016-05-26 Nimble Storage, Inc. Content-based replication of data between storage units
US9348880B1 (en) * 2015-04-01 2016-05-24 Palantir Technologies, Inc. Federated search of multiple sources with conflict resolution
US11036394B2 (en) 2016-01-15 2021-06-15 Falconstor, Inc. Data deduplication cache comprising solid state drive storage and the like
US10574751B2 (en) * 2016-03-22 2020-02-25 International Business Machines Corporation Identifying data for deduplication in a network storage environment
US10359965B1 (en) * 2017-07-28 2019-07-23 EMC IP Holding Company LLC Signature generator for use in comparing sets of data in a content addressable storage system
US11061713B2 (en) * 2017-08-07 2021-07-13 Datto, Inc. Prioritization and source-nonspecific based virtual machine recovery apparatuses, methods and systems
US11841768B2 (en) * 2020-04-01 2023-12-12 Datto, Inc. Multi-client backup deduplication apparatuses, methods and systems

Also Published As

Publication number Publication date
JP7282114B2 (ja) 2023-05-26
JP2022123774A (ja) 2022-08-24
US11372570B1 (en) 2022-06-28

Similar Documents

Publication Publication Date Title
US10191934B2 (en) De-duplication system and method thereof
US9830231B2 (en) Processes and methods for client-side fingerprint caching to improve deduplication system backup performance
CN107491523B (zh) 存储数据对象的方法及装置
US20120259825A1 (en) Data management method and data management system
US10656858B1 (en) Deduplication featuring variable-size duplicate data detection and fixed-size data segment sharing
CN111309732B (zh) 数据处理方法、装置、介质和计算设备
CN114924687A (zh) 存储装置、计算机系统及数据传送程序
US9917894B2 (en) Accelerating transfer protocols
US10862672B2 (en) Witness blocks in blockchain applications
GB2518158A (en) Method and system for data access in a storage infrastructure
CN110908589B (zh) 数据文件的处理方法、装置、系统和存储介质
CN108008918A (zh) 数据处理方法、存储节点及分布式存储系统
CN108415986B (zh) 一种数据处理方法、装置、系统、介质和计算设备
WO2019062572A1 (zh) 一种数据处理方法、装置及系统
CN109766318B (zh) 文件读取方法及装置
CN107391761B (zh) 一种基于重复数据删除技术的数据管理方法及装置
CN110399096B (zh) 分布式文件系统元数据缓存重删的方法、装置以及设备
US20180107404A1 (en) Garbage collection system and process
US20200133558A1 (en) Method, device and computer program product for data backup
US10996898B2 (en) Storage system configured for efficient generation of capacity release estimates for deletion of datasets
CN113296709A (zh) 用于去重的方法和设备
CN104956340A (zh) 可扩展数据重复删除
CN110618790A (zh) 基于重复数据删除的雾存储数据去冗余方法
CN110245129A (zh) 一种分布式全局数据去重方法和装置
JP6591700B2 (ja) システム、データ管理方法、及びファイルサーバ

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination