CN107704466B - 数据储存系统 - Google Patents

数据储存系统 Download PDF

Info

Publication number
CN107704466B
CN107704466B CN201610643692.0A CN201610643692A CN107704466B CN 107704466 B CN107704466 B CN 107704466B CN 201610643692 A CN201610643692 A CN 201610643692A CN 107704466 B CN107704466 B CN 107704466B
Authority
CN
China
Prior art keywords
processing unit
data
address
physical
write
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
Application number
CN201610643692.0A
Other languages
English (en)
Other versions
CN107704466A (zh
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.)
Shanghai Chuanyuan Information Technology Co ltd
Original Assignee
Shanghai Chuanyuan Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Chuanyuan Information Technology Co Ltd filed Critical Shanghai Chuanyuan Information Technology Co Ltd
Priority to CN201610643692.0A priority Critical patent/CN107704466B/zh
Priority to US15/256,848 priority patent/US10140047B2/en
Publication of CN107704466A publication Critical patent/CN107704466A/zh
Application granted granted Critical
Publication of CN107704466B publication Critical patent/CN107704466B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • 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/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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system

Abstract

本发明提出一种数据储存系统,数据储存系统包含存储器、硬盘及处理单元。存储器的第一逻辑区块中的第一逻辑地址及第二逻辑地址对应于一重复数据,且重复数据储存于硬盘中的两实体页面。于执行去重复命令时,处理单元将重复数据搬移至映射于存储器的第二逻辑区块中的第三逻辑地址的一实体页面,此实体页面具有第三实体地址,且更新第一映射关系使其提供第一逻辑地址与第三逻辑地址之间的映射关系以及第二逻辑地址与第三逻辑地址之间的映射关系,且处理单元将第三逻辑地址与第三实体地址的映射关系储存于存储器。

Description

数据储存系统
技术领域
本发明是关于一种数据储存系统,且特别是具有将重复数据删除功能的数据储存系统。
背景技术
重复数据删除(data de-duplication)技术是一种数据缩减技术,经常被使用在硬盘中,例如,相同文件的两或更多相同的复本可能会出现在硬盘中。重复数据删除的目的是在于将硬盘中的冗余数据删除,以释放储存空间给其他数据使用。
在现有的重复数据删除技术中,一般都必须先在存储器中建立键值(key value)的样本数据库,并于每笔数据欲写入硬盘时以中央处理单元(CPU)计算每笔数据的键值,且中央处理单元比对键值与样本数据库中的键值样本,若比对结果为相同就执行去重复程序,若比对结果为不相同则将前述键值加入样本数据库。故键值的样本数据库的容量与判断是否为重复数据的准确度有关。于是,为了提高准确度,增加样本数据库的容量来保留所有样本键值将会导致过于耗费存储器空间,且在较大的样本数据库亦造成键值样本的搜寻时间冗长;再者,若使用容量较小的存储器,当键值样本的数量已达样本数据库的上限时,部分的键值必定会被舍弃,此时将导致前述的准确度降低。因此,如何在有限的存储器空间中维持判断重复数据的准确度实属当前重要研发课题之一。
再者,现有的重复数据删除技术经常是在收到来自输出入装置的写入要求时即时地将重复数据删除,并建立重复数据的位置关系表且将其储存于易失性存储器中,若易失性存储器遭遇断电将导致重复数据关系表遗失而无法重建,若为预防断电则必须使用非易失性存储器,当重复数据的数量众多时将导致庞大的位置关系表耗费存储器中大部分的可储存空间;并且,在每一次发现重复数据之后就必须更新位置关系表亦相当耗费CPU资源。
发明内容
有鉴于此,本发明提出一种数据储存系统。
在一些实施例中,数据储存系统包含存储器、硬盘及处理单元。存储器包含第一逻辑区块及第二逻辑区块。第一逻辑区块包含多个逻辑页面,其中的两逻辑页面具有第一逻辑地址及第二逻辑地址,第一逻辑区块用以储存第一映射关系,此第一映射关系提供前述第一逻辑地址与第一实体地址之间的映射关系,且第一映射关系提供前述第二逻辑地址与第二实体地址之间的映射关系;第二逻辑区块包含多个逻辑页面,其中的一逻辑页面具有一第三逻辑地址。硬盘包含多个实体页面,其中的第一实体页面、第二实体页面及第三实体页面分别具有第一实体地址、第二实体地址及第三实体地址,第一实体页面及第二实体页面储存有相同的一重复数据,前述的二重复数据分别对应于第一逻辑地址及第二逻辑地址;处理单元用以执行去重复命令,于执行去重复命令时,处理单元配置第三逻辑地址映射于第三实体地址,处理单元将重复数据储存于第三实体页面;并且,处理单元更新第一映射关系,使第一逻辑地址及第二逻辑地址同时映射于第三逻辑地址,且处理单元更将第二映射关系储存于第二逻辑区块,第二映射关系提供第三逻辑地址与第三实体地址之间的映射关系。
在一些实施例中,前述的存储器更包含一键值表,处理单元更用以执行一写入命令及一读取命令,写入命令包含一写入数据,于执行写入命令时,处理单元不将写入数据的键值加入键值表,处理单元判断写入数据的键值是否存在于键值表中;于执行读取命令时,处理单元不判断读取数据的键值是否存在于键值表中,处理单元将来自硬盘的一读取数据的键值加入键值表。
在一些实施例中,前述的硬盘更包含一操作系统,且硬盘具有相容于操作系统的一文件系统,文件系统将来自一输出入装置的各写入数据区分为多个文件属性及文件内容,各文件内容储存于实体页面,其中处理单元执行操作系统以比对多个写入数据中的至少两者的每一个文件属性是否相同以选择性执行去重复命令。
在一些实施例中,前述的文件系统提供一文件指标,文件指标提供各写入数据的文件属性与文件内容之间的位置对应关系,若来自输出入装置的写入数据中的至少两写入数据的每一文件属性均相同时,处理单元根据文件指标读取前述至少两写入数据的文件内容,处理单元根据前述至少两写入数据的文件内容计算并比对两写入数据的键值,以选择性执行去重复命令。
在一些实施例中,若前述的写入数据中的至少两写入数据的每一文件属性均相同时,操作系统产生表示去重复命令的一处理程序识别码,使处理单元执行去重复命令。
在一些实施例中,前述的操作系统更产生表示数据压缩程序的另一处理程序识别码,使处理单元更根据另一处理程序识别码对各写入数据进行数据压缩。
在一些实施例中,于前述的处理单元执行去重复命令之后,处理单元更用以执行一垃圾收集命令,于执行垃圾收集命令时,处理单元将写入数据储存于实体页面中的一第四实体页面,第四实体页面具有第四实体地址,且处理单元更新第二映射关系,使第二映射关系提供第三逻辑地址与第四实体地址之间的映射关系。
在一些实施例中,于前述的处理单元接收来自一输出入装置于不同时间点发出的多个写入命令之后,处理单元始执行去重复命令。
在一些实施例中,前述的第一逻辑区块中的地址可提供使用者进行存取,而前述的第二逻辑区块不提供使用者进行存取,第二逻辑区块仅提供系统进行重复数据删除程序时使用,换言之,对使用者来说,第一逻辑区块为可读写,而第二逻辑区块为只读。
在一些实施例中,前述的处理单元将重复数据分别写入第一实体页面及第二实体页面,且存储器为易失性存储器,于一电源供电中断又恢复供电之后,硬盘中储存有重复数据与第一逻辑地址及第二逻辑地址之间的对应关系,处理单元根据此对应关系及储存有重复数据的第一实体地址以及第二实体地址重新建立第一逻辑地址与第一实体地址以及第二逻辑地址与第二实体地址之间的映射关系。
综上所述,根据本发明的数据储存系统的一实施例,处理单元系以离线的方式执行去重复化指令,且建立重复数据与实体地址之间的双层映射关系,可减少逻辑地址与实体地址的映射关系的更新次数而大幅的简化硬件及软件在设计上的复杂度,并保持硬盘写入的顺序性,还可在遭遇断电后将重复数据的位置关系恢复;再者,在文件层进行重复数据判断程序可减少硬盘的读取次数;进一步,于执行写入命令时有意义的猜测数据重复的可能,可以小容量的数据库储存键值样本进而减少比对时间并维持判断重复数据的准确度。
附图说明
图1为根据本发明的数据储存系统一实施例的方块示意图。
图2为图1的数据储存系统进行重复数据删除程序的一实施例的示意图。
图3为图1的数据储存系统进行垃圾收集程序的一实施例的示意图。
图4为图1的处理单元于执行读取命令的一实施例的示意图。
图5为图1的处理单元于执行写入命令的一实施例的示意图。
图6为图1的数据储存系统的另一实施态样的示意图。
图7为图1的处理单元所比对的两文件内容的一实施态样的示意图。
【符号说明】
1 硬盘
11-17 实体页面
19 操作系统
18 文件系统
2 处理单元
3 存储器
31 第一逻辑区块
32 第二逻辑区块
4 文件层
5 区块层
6 存储器
61 键值表
T1、T2 表格
A、B 文件内容
W1 写入数据
R1 读取数据
K1、K2 键值
具体实施方式
图1为根据本发明的数据储存系统一实施例的方块示意图。图2为图1的数据储存系统进行重复数据删除程序的一实施例的示意图。请同时参照图1及图2,数据储存系统包含硬盘1、处理单元2及存储器3。处理单元2耦接存储器3及硬盘1,以控制硬盘1及存储器3的操作。数据储存系统可进行一重复数据判断程序及一重复数据删除程序。在一些实施态样中,存储器3可为非易失性(non-volatile)存储器或易失性(volatile)存储器;硬盘1可为固态硬盘(Solid-State Disk;SSD);处理单元2可为中央处理单元、微处理机、微控制器或具有运算与控制功能的特殊应用IC(Application-Specific IC;ASIC)。
硬盘1用以储存数据,硬盘1包含多个实体页面,各实体页面具有实体地址。如图1所示,图1示例出多个实体页面中的七个实体页面11-17,实体页面11-17的实体地址分别为「10000」、「10008」、「10016」、「10024」、「10064」、「10160」及「10164」。
存储器3包含第一逻辑区块31及第二逻辑区块32,第一逻辑区块31及第二逻辑区块32分别涵盖存储器3中不同的地址空间,且包含多个逻辑页面。举例来说,以图1为例,第一逻辑区块31所涵盖的地址空间的起始(base)地址为「100」,而地址的偏移量(offset)为「100」;第二逻辑区块32所涵盖的地址空间的起始地址为「80000」,而地址的偏移量为「100」。于此,图1示例出第一逻辑区块31中的四逻辑页面的逻辑地址分别为「100」、「200」、「300」、「400」,第二逻辑区块32中的三逻辑页面的逻辑地址分别为「80000」、「80100」及「80200」。在一些实施态样中,第一逻辑区块31及第二逻辑区块32所分别涵盖的地址空间为可变的,可藉由静态分配或是由处理单元2根据当时存储器空间分配状况来进行动态分配,以决定第一逻辑区块31及第二逻辑区块32的地址空间。并且,第一逻辑区块31及第二逻辑区块32中的逻辑地址可为逻辑页码(logical page number),而硬盘1的实体地址可为实体页码(physical page number)。
第一逻辑区块31用以储存一映射关系(为方便描述,以下称为第一映射关系)。第一映射关系提供第一逻辑区块31中的逻辑地址与硬盘1的实体地址之间的映射。如图1所示,第一映射关系可使逻辑地址「100」、「200」、「300」、「400」分别映射至实体地址「10000」、「10008」、「10016」、「10024」。图1中亦以表格T1呈现第一映射关系。在一些实施态样中,以前述的逻辑地址及实体地址分别为逻辑页码及实体页码为例,实体页码可储存于逻辑页面中使逻辑页码可映射至实体页码。
其中,值得注意的是,第一逻辑区块31中的地址可提供使用者进行存取,第二逻辑区块32则仅提供系统进行重复数据删除程序时使用而不提供使用者进行存取。基此,当使用者操作输出入(I/O)装置而产生写入需求时,处理单元2执行来自输出入装置的多个写入命令,各写入命令包含写入数据及对应写入数据的逻辑地址。举例来说,写入数据可为「A」、「B」、「C」、「A」且分别对应于第一逻辑区块31中的逻辑地址「100」、「200」、「300」、「400」。其中,虽然写入数据「A」为重复数据,但处理单元2并不立即执行去重复命令,处理单元2依据第一映射关系将写入数据「A」、「B」、「C」、「A」分别写入实体页面11、12、13、14。在将四个写入数据写入硬盘1之后,处理单元2执行来自输出入装置的其他写入命令,处理单元2亦依据第一映射关系将其他写入数据写入硬盘1中的其他实体页面。由图1中亦可得知,重复数据「A」对应于两逻辑地址「200」、「400」(以下分别称为第一逻辑地址及第二逻辑地址)。
待处理单元2执行去重复命令时,根据硬盘1中重复数据的数量,处理单元2配置第二逻辑区块32中相应数量的逻辑地址,且配置前述逻辑地址一对一映射于硬盘1中的实体地址。举例来说,若处理单元2欲对硬盘1中的四个重复数据进行去重复,则处理单元2可配置第二逻辑区块32中的四个逻辑地址,且四个逻辑地址分别一对一映射于一实体地址。以一个重复数据为写入数据「A」为例,在重复数据删除程序中,处理单元2可配置第二逻辑区块32的一逻辑地址(以下称为第三逻辑地址)例如「80100」映射于实体地址「10064」。接着,如图2所示,处理单元2将重复数据的写入数据「A」写入实体地址为「10064」的实体页面15。此时,写入数据A于硬盘1中的储存位置已改变。于是,如图2所示,处理单元2更新第一映射关系,使第一映射关系中的第一逻辑地址「200」映射至第三逻辑地址「80100」,且使第二逻辑地址「400」映射至第三逻辑地址「80100」(图2中的表格T1呈现更新后的第一映射关系);并且,处理单元2将可表示第三逻辑地址「80100」映射于实体地址「10064」的一映射关系(以下称为第二映射关系)储存于第二逻辑区块32(图2中亦以表格T2呈现第二映射关系)。于此,在处理单元2执行去重复命令之后,第一逻辑地址及第二逻辑地址不再直接映射至实体地址,第一逻辑地址及第二逻辑地址经由第一映射关系先映射至第二逻辑区块32再藉由第三逻辑地址与实体地址的直接映射关系而间接映射至实体地址。
同理,倘若硬盘1中另一些实体页面中亦储存有另一重复数据,且此另一重复数据对应于第一逻辑区块31中的多个逻辑地址,例如三个逻辑地址(以下称为第四逻辑地址、第五逻辑地址及第六逻辑地址),则处理单元2配置第二逻辑区块32中的另一逻辑地址(以下称为第七逻辑地址)一对一映射于硬盘1的一实体地址,例如「10164」,并将前述的另一重复数据储存于实体地址为「10164」的实体页面17,并更新第一映射关系且将第七逻辑地址与实体地址「10164」之间的一对一映射关系加入第二映射关系,使第四逻辑地址、第五逻辑地址及第六逻辑地址可藉由第二逻辑区块32中的第七逻辑地址映射至实体地址「10164」。于此,处理单元2可重复上述步骤对硬盘1中的所有重复数据进行搬移。
在处理单元2执行写入命令之后,由于处理单元2将两重复数据「A」分别写入实体页面12、14,因此,在一些实施态样中,若存储器3为易失性存储器,假设电源供电中断,导致存储器3中的数据消失而失去第一逻辑区块31中所储存的第一映射关系,在电源恢复供电使数据储存系统复电之后,原第一映射关系可藉由各个写入数据于硬盘1中的储存位置以及各个写入数据与逻辑地址之间的对应关系而被重新建立。举例来说,硬盘1中储存有写入数据「B」、「A」、「C」、「A」与逻辑地址「100」、「200」、「300」、「400」的对应关系,故逻辑地址「100」与实体地址「10000」的映射关系可根据写入数据「B」储存于实体页面11而被重新建立;逻辑地址「200」与实体地址「10008」的映射关系可根据写入数据「A」储存于实体页面12而被重新建立;逻辑地址「300」与实体地址「10016」的映射关系可根据写入数据「C」储存于实体页面13而被重新建立;逻辑地址「400」与实体地址「10024」的映射关系可根据写入数据「A」储存于实体页面14而被重新建立。于是,相较于现有技术,若在写入数据储存于实体页面之后即遭遇断电,则对应于重复数据的逻辑地址与实体地址之间的映射关系亦可在复电之后被重新建立。
在一些实施态样中,在执行来自输出入单元的不同时间点的多个写入命令之后(即,处理单元2以后置处理(post-processing)的方式执行去重复命令),处理单元2始进行重复数据判断并将重复数据进行搬移。并且,在重复数据所对应的逻辑地址与实体地址之间的映射关系储存于存储器3之后,处理单元2始将实体页面12、14中的写入数据「A」删除而保留实体页面16中的写入数据「A」。若为预防删除重复数据后可能遭遇断电的状况,在本实施态样中,存储器3可为非易失性存储器以存储重复数据所对应的逻辑地址与实体地址之间的映射关系。
图3为图1的数据储存系统进行垃圾收集(garbage collection)程序的一实施例的示意图。在一些实施态样中,数据储存系统亦可执行垃圾收集程序。于处理单元2执行完去重复命令之后,若硬盘1的可储存空间低于临界值(或达成自设定的执行垃圾收集的条件)时,例如硬盘1的可储存空间剩余20%,此时处理单元2可执行垃圾收集命令。以处理单元2欲对写入数据「A」进行垃圾收集为例,请参照图3,处理单元2可将写入数据「A」搬移至其他实体页面中,例如,实体页面16。于是,由于写入数据A的储存位置已改变,处理单元2更新第二映射关系,使第二映射关系中的第一逻辑地址「80100」映射至实体地址「10160」。处理单元2可对其他写入数据进行搬移动作并更新第二映射关系以完成垃圾收集。
图4为图1的处理单元2于执行读取命令的一实施例的示意图。图5为图1的处理单元2于执行读取命令的一实施例的示意图。在一些实施态样中,数据储存系统在进行重复数据删除程序前先进行重复数据判断程序,处理单元2将数据的键值(或称为指纹)与键值的样本值进行比对以判断出重复数据。于此,请同时参照图4及图5,数据储存系统更可包含一存储器6,且存储器6中储存有一键值表61,如图4及图5所示,键值表61包含多个样本值,例如16进制表示法中的9a4d、1d4e及2be5,处理单元2可将键值加入键值表61中以作为样本值。再者,根据使用者对硬盘1的存取动作,重复数据经常是发生于硬盘1进行数据复制时,而数据复制包含硬盘1的读取动作及晚于读取动作的写入动作。倘若于前一时间点自硬盘1中所读取出的读取数据与后一时间点欲写入硬盘1的写入数据相同,则表示于写入动作发生之前,欲写入硬盘1的写入数据已存在于硬盘1中,故伴随写入动作的写入数据即为重复数据。因此,键值表61中仅需涵盖复制动作中被读取的读取数据的键值而不需要涵盖硬盘1中所有已存数据的键值,存储器6可为较小容量的存储器。在一些实施态样中,存储器6可为高速缓冲(cache)存储器。
如图4所示,于执行读取命令时,处理单元2可计算来自硬盘1的读取数据R1的键值K1,并将键值K1加入键值表61中,此时处理单元2并不判断键值K1是否存在于键值表61中。如图5所示,在执行写入命令时,处理单元2计算写入数据W1的键值,此时处理单元2不将写入数据W1的键值加入键值表61而是读取键值表61比对键值的样本值K2与写入数据W1的键值是否相同以判断写入数据W1的键值是否存在于键值表61中。于写入数据W1与读取数据R1相同的情况中(即,写入数据W1为重复数据),在写入动作发生时,处理单元2比对写入数据W1的键值与样本值会发现写入数据W1的键值与样本值相同,即表示写入数据W1与读取数据R1相同而为重复数据。相较于现有技术,由于数据复制动作中的读取动作与写入动作的时间点接近,在样本值被丢弃之前,处理单元2就会进行重复数据的判断(即,比对样本值与写入数据W1的键值)。因此,即便可储存样本值的存储器空间较小,处理单元2仍可进行重复数据的判断而可节省存储器空间,且在较小的存储器空间中搜寻样本值可节省样本值的搜寻时间。在一些实施态样中,可以消息摘要算法(Message-Digest algorithm 5;MD5)或安全散列算法(Secure Hash Algorithm;SHA)计算写入数据及读取数据的杂凑值来作为键值。
图6为图1的数据储存系统的另一实施态样的示意图。在一些实施态样中,请参照图6,硬盘1中可储存有操作系统19,操作系统19可为Windows、Unix或Linux系统,且硬盘1具有相容于操作系统19的一文件系统(file system)18,例如前述的Windows系统常用的文件配置表(File Allocation Table;FAT)新技术文件系统(New Technology File System;NTFS),或是Unix及Linux系统常用的扩展文件系统(Extended file system;EXT)2/3/4。文件系统18将来自输出入装置的每一写入数据区分为两部分,一部分为写入数据的文件属性,例如,写入数据的存取时间、文件名、文件大小及文件类型,另一部分为写入数据的文件内容,例如表示前述的英文字母「A」、「B」、「C」的文件内容。并且,文件系统18将硬盘1的储存空间规划为两区(以下称为第一区及第二区),第一区即为实体页面11-17所涵盖的地址空间,第一区用以储存写入数据的文件内容,而第二区主要是用来储存写入数据的文件属性。于此,如图6所示,操作系统19及文件系统18属于文件层(file-layer)4,而处理单元2、两存储器3、6则属于区块层(block-layer)5,处理单元2可执行操作系统19以比对写入数据的文件属性,并藉由判断写入数据的文件属性是否相同来判断写入数据中是否包含重复数据,以选择性执行去重复命令。
举例来说,若两写入数据的文件属性不相同,表示两写入数据并非重复数据,则处理单元2不执行去重复命令;反之,若两写入数据的文件名、文件大小及建立时间均一致,则表示两写入数据中有很高的机率包含重复数据,此时,处理单元2可进一步比对两写入数据的键值而无须将两写入数据的键值与全部的样本值进行比对。倘若比对结果表示两写入数据的键值相同,则处理单元2执行去重复命令。
进一步,硬盘1中的第一区更可储存有一文件指标,文件指标提供每一文件属性与每一文件内容之间的位置对应关系。当两写入数据的文件属性相同时,处理单元2根据文件指标至实体页面分别读取具有相同文件属性的两写入数据的文件内容,以进一步藉由两文件内容来确认两写入数据的键值是否相同,以选择性执行去重复命令。
在另一些实施态样中,当两写入数据的文件属性相同时,操作系统19可发出表示去重复命令的处理程序识别码(Process Identifier;PID),使处理单元2根据处理程序识别码来执行去重复命令。在另一些实施例中,处理程序识别码亦可应用于数据压缩技术,也就是说,当进行数据压缩的条件达成时,操作系统19可发出表示数据压缩程序的处理程序识别码,使处理单元2可根据处理程序识别码来对硬盘1中的写入数据进行数据压缩。
在一些实施态样中,处理单元2自硬盘1读取出两写入数据的文件内容之后,处理单元2将两文件内容分别进行切割。如图7所示,两文件内容分别为文件内容A及文件内容B,而文件内容A、B分别被切割为5个部分,处理单元2计算文件内容A的各部分的键值以产生「key1」、「key2」、「key3」、「key4」及「key5」,且处理单元2计算文件内容B的各部分的键值以产生「key6」、「key7」、「key8」、「key9」及「key10」,且处理单元2将「key1」与「key6」进行比对,将「key2」与「key7」进行比对,将「key3」与「key8」进行比对,将「key4」与「key9」进行比对,并将「key5」与「key10」进行比对;若任一比对结果为不相同即表示前述的两写入数据并非重复数据。若每一比对结果为相同即表示两写入数据中包含重复数据。
综上所述,根据本发明的数据储存系统的一实施例,处理单元以离线的方式执行去重复化指令,且建立重复数据与实体地址之间的双层映射关系,可减少逻辑地址与实体地址的映射关系的更新次数而大幅的简化硬件及软件在设计上的复杂度,并保持硬盘写入的顺序性,还可在遭遇断电后将重复数据的位置关系恢复;再者,在文件层进行重复数据判断程序可减少硬盘的读取次数;进一步,于执行写入命令时有意义的猜测数据重复的可能,可以小容量的数据库储存键值样本进而减少比对时间并维持判断重复数据的准确度。
虽然本发明已以实施例揭露如上然其并非用以限定本发明,任何所属技术领域中的技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视后附的权利要求书所界定者为准。

Claims (9)

1.一种数据储存系统,其特征在于,包含:
一存储器,包含:
一第一逻辑区块,包含多个逻辑页面,该些逻辑页面中的两逻辑页面具有一第一逻辑地址及一第二逻辑地址,该第一逻辑区块用以储存一第一映射关系,该第一映射关系提供该第一逻辑地址与一第一实体地址之间的映射关系,且该第一映射关系提供该第二逻辑地址与一第二实体地址之间的映射关系;及
一第二逻辑区块,包含多个逻辑页面,该些逻辑页面中的一逻辑页面具有一第三逻辑地址;
一硬盘,包含多个实体页面,该些实体页面中的一第一实体页面、一第二实体页面及一第三实体页面分别具有该第一实体地址、该第二实体地址及一第三实体地址,该第一实体页面及该第二实体页面储存有相同的一重复数据,该二重复数据分别对应于该第一逻辑地址及该第二逻辑地址;
一处理单元,用以执行一去重复命令,于执行该去重复命令时,该处理单元配置该第三逻辑地址映射于该第三实体地址,该处理单元将该重复数据储存于该第三实体页面;并且,该处理单元更新该第一映射关系,使该第一逻辑地址及该第二逻辑地址同时映射于该第三逻辑地址,且该处理单元更将一第二映射关系储存于该第二逻辑区块,该第二映射关系提供该第三逻辑地址与该第三实体地址之间的映射关系;及
另一存储器,用以储存一键值表,该处理单元更用以执行一写入命令及一读取命令,该写入命令包含一写入数据,于执行该写入命令时,该处理单元不将该写入数据的键值加入该键值表,该处理单元判断该写入数据的键值是否存在于该键值表中;于执行该读取命令时,该处理单元不判断该读取数据的键值是否存在于该键值表中,该处理单元将来自该硬盘的一读取数据的键值加入该键值表。
2.如权利要求1所述的数据储存系统,其特征在于,该硬盘更包含一操作系统,且该硬盘具有相容于该操作系统的一文件系统,该文件系统将来自一输出入装置的各写入数据区分为多个文件属性及一文件内容,各该文件内容储存于该些实体页面,其中该处理单元执行该操作系统以比对该些写入数据中的至少两写入数据的每一该文件属性是否相同以选择性执行该去重复命令。
3.如权利要求2所述的数据储存系统,其特征在于,该文件系统提供一文件指标,该文件指标提供各该写入数据的每一该文件属性与该文件内容之间的位置对应关系,若来自该输出入装置的该些写入数据中的至少两写入数据的每一该文件属性均相同时,该处理单元根据该文件指标读取该至少两写入数据的文件内容,该处理单元根据该至少两写入数据的文件内容计算并比对该至少两写入数据的键值,以选择性执行该去重复命令。
4.如权利要求2所述的数据储存系统,其特征在于,若该些写入数据中的至少两写入数据的每一该文件属性均相同时,该操作系统产生表示该去重复命令的一处理程序识别码,使该处理单元执行该去重复命令。
5.如权利要求4所述的数据储存系统,其特征在于,该操作系统更产生表示数据压缩程序的另一处理程序识别码,使该处理单元更根据该另一处理程序识别码对各该写入数据进行数据压缩。
6.如权利要求1所述的数据储存系统,其特征在于,于该处理单元执行该去重复命令之后,该处理单元更用以执行一垃圾收集命令,于执行该垃圾收集命令时,该处理单元将该写入数据储存于该些实体页面中的一第四实体页面,该第四实体页面具有一第四实体地址,且该处理单元更新该第二映射关系,使该第二映射关系提供该第三逻辑地址与该第四实体地址之间的映射关系。
7.如权利要求1所述的数据储存系统,其特征在于,于该处理单元接收来自一输出入装置于不同时间点发出的多个写入命令之后,该处理单元始执行该去重复命令。
8.如权利要求1所述的数据储存系统,其特征在于,该第一逻辑区块为可读写,该第二逻辑区块为只读。
9.如权利要求1所述的数据储存系统,其特征在于,该处理单元将该重复数据分别写入该第一实体页面及该第二实体页面,该存储器为易失性存储器,于一电源供电中断又恢复供电之后,该硬盘中储存有该重复数据与该第一逻辑地址及该第二逻辑地址之间的一对应关系,该处理单元根据该对应关系及分别储存该重复数据的该第一实体地址以及该第二实体地址重新建立该第一逻辑地址与该第一实体地址以及该第二逻辑地址与该第二实体地址之间的映射关系。
CN201610643692.0A 2016-08-09 2016-08-09 数据储存系统 Active CN107704466B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610643692.0A CN107704466B (zh) 2016-08-09 2016-08-09 数据储存系统
US15/256,848 US10140047B2 (en) 2016-08-09 2016-09-06 Data storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610643692.0A CN107704466B (zh) 2016-08-09 2016-08-09 数据储存系统

Publications (2)

Publication Number Publication Date
CN107704466A CN107704466A (zh) 2018-02-16
CN107704466B true CN107704466B (zh) 2020-12-11

Family

ID=61158968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610643692.0A Active CN107704466B (zh) 2016-08-09 2016-08-09 数据储存系统

Country Status (2)

Country Link
US (1) US10140047B2 (zh)
CN (1) CN107704466B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763508B (zh) * 2018-05-30 2019-07-30 中兴通讯股份有限公司 数据页访问方法、存储引擎以及计算机可读存储介质
TWI715162B (zh) * 2019-08-26 2021-01-01 點序科技股份有限公司 記憶體驗證方法及記憶體驗證系統
CN112148220B (zh) * 2020-09-17 2024-03-19 合肥大唐存储科技有限公司 一种实现数据处理的方法、装置、计算机存储介质及终端
EP4222604A4 (en) * 2021-12-21 2023-12-20 Yangtze Memory Technologies Co., Ltd. SYSTEM AND METHOD FOR DEFRAGMENTATION OF MEMORY DEVICE
CN114979094A (zh) * 2022-05-13 2022-08-30 深圳智慧林网络科技有限公司 一种基于rtp的数据传输方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201224787A (en) * 2010-12-10 2012-06-16 Inventec Corp A deduplication system
CN102981969A (zh) * 2012-11-21 2013-03-20 记忆科技(深圳)有限公司 重复数据删除的方法及其固态硬盘
US8527544B1 (en) * 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
TW201516720A (zh) * 2013-07-26 2015-05-01 Intelligent Ip Holdings 2 Llc 用於儲存一致性之系統及方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
US7937371B2 (en) * 2008-03-14 2011-05-03 International Business Machines Corporation Ordering compression and deduplication of data
US8086799B2 (en) * 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US20100217952A1 (en) * 2009-02-26 2010-08-26 Iyer Rahul N Remapping of Data Addresses for a Large Capacity Victim Cache
KR101635446B1 (ko) * 2010-05-25 2016-07-04 삼성전자주식회사 반도체 메모리 장치의 블록 병합 방법
US9514146B1 (en) * 2013-09-26 2016-12-06 Emc Corporation System and method for improving data compression of a storage system in an online manner
US10013169B2 (en) * 2014-12-19 2018-07-03 International Business Machines Corporation Cooperative data deduplication in a solid state storage array

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201224787A (en) * 2010-12-10 2012-06-16 Inventec Corp A deduplication system
US8527544B1 (en) * 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
CN102981969A (zh) * 2012-11-21 2013-03-20 记忆科技(深圳)有限公司 重复数据删除的方法及其固态硬盘
TW201516720A (zh) * 2013-07-26 2015-05-01 Intelligent Ip Holdings 2 Llc 用於儲存一致性之系統及方法

Also Published As

Publication number Publication date
US20180046394A1 (en) 2018-02-15
CN107704466A (zh) 2018-02-16
US10140047B2 (en) 2018-11-27

Similar Documents

Publication Publication Date Title
US20210157523A1 (en) Storage system
CN107704466B (zh) 数据储存系统
US9910620B1 (en) Method and system for leveraging secondary storage for primary storage snapshots
US10031675B1 (en) Method and system for tiering data
CN106354745B (zh) 用于提供计算机装置的接口的方法和计算机装置
US9141621B2 (en) Copying a differential data store into temporary storage media in response to a request
CN105843551B (zh) 高性能和大容量储存重复删除中的数据完整性和损耗电阻
US9921773B2 (en) Range-based data deduplication using a hash table with entries replaced based on address alignment information
US8612719B2 (en) Methods for optimizing data movement in solid state devices
US9740422B1 (en) Version-based deduplication of incremental forever type backup
US10108356B1 (en) Determining data to store in retention storage
JP6629407B2 (ja) 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品
US20120158674A1 (en) Indexing for deduplication
US10891074B2 (en) Key-value storage device supporting snapshot function and operating method thereof
KR20170009706A (ko) 중복 데이터를 감소시키기 위한 저장 장치 및 그것의 동작 방법
KR20130066639A (ko) 데이터 이용가능성의 마운트타임 조정
JP7376488B2 (ja) スナップショットのコピーオンライトのデータ移動を回避するインフラストラクチャとしての重複除外
US9684658B2 (en) SWAT command and API for atomic swap and trim of logical pages
US10776321B1 (en) Scalable de-duplication (dedupe) file system
US10990486B2 (en) Data storage system with repair of mid-level mapping blocks of internal file system
US11860840B2 (en) Update of deduplication fingerprint index in a cache memory
TWI610219B (zh) 資料儲存系統
KR102316198B1 (ko) 파일 액세스 방법, 컴퓨터, 및 컴퓨터-읽기 가능한 매체에 실행 가능한 소프트웨어 제품
KR20100040559A (ko) 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법및 장치
US9646012B1 (en) Caching temporary data in solid state storage devices

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
TA01 Transfer of patent application right

Effective date of registration: 20180615

Address after: Taiwan, Taipei, China, Nanhai District, 6 East section 465, 10

Applicant after: Jieding Innovation Co.,Ltd.

Address before: Taiwan, Taipei, China, Nanhai District, 6 East section 465, 10

Applicant before: JIEDING INTERNATIONAL CO.,LTD.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: Taiwan, Taipei, China, Nanhai District, 6 East section 465, 10

Applicant after: British Cayman Islands shangjieding Innovation Co.,Ltd.

Address before: Taiwan, Taipei, China, Nanhai District, 6 East section 465, 10

Applicant before: Jieding Innovation Co.,Ltd.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20200413

Address after: No. 5, 237, 1 Datong Road, Taiwan, Xinbei City, Xinbei City, China

Applicant after: INNODISK Corp.

Address before: Taiwan, Taipei, China, Nanhai District, 6 East section 465, 10

Applicant before: British Cayman Islands shangjieding Innovation Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200611

Address after: 04-95, Fanglin building, 531a, upper section of Klaus street, Singapore

Applicant after: Jieding Singapore Pte. Ltd.

Address before: No. 5, 237, 1 Datong Road, Taiwan, Xinbei City, Xinbei City, China

Applicant before: INNODISK Corp.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200813

Address after: Building C, No. 888, Huanhu West 2nd Road, Lingang New Area, Pudong New Area (Shanghai) pilot Free Trade Zone

Applicant after: Shanghai Chuanyuan Information Technology Co.,Ltd.

Address before: 04-95, Fanglin building, 531a, upper section of Klaus street, Singapore

Applicant before: Jieding Singapore Pte. Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant