CN104272300A - 通过加密在数据去重复系统中保留冗余性 - Google Patents

通过加密在数据去重复系统中保留冗余性 Download PDF

Info

Publication number
CN104272300A
CN104272300A CN201380021100.6A CN201380021100A CN104272300A CN 104272300 A CN104272300 A CN 104272300A CN 201380021100 A CN201380021100 A CN 201380021100A CN 104272300 A CN104272300 A CN 104272300A
Authority
CN
China
Prior art keywords
data segment
data
encryption
selection
deduplication
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.)
Granted
Application number
CN201380021100.6A
Other languages
English (en)
Other versions
CN104272300B (zh
Inventor
R·M·菲斯克
C·E·琼斯
S·罗伊
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104272300A publication Critical patent/CN104272300A/zh
Application granted granted Critical
Publication of CN104272300B publication Critical patent/CN104272300B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • 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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control 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/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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/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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computational Linguistics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了用于在计算环境中的数据去重复系统中保留数据冗余性的各种实施例。在一个实施例中,公开了一种用于这样的保留的方法。对将通过数据去重复系统写入的选择的数据段加密,从而使得选择的数据段不经受去重复操作。其它系统和计算机产品实施例被公开并且提供有关优点。

Description

通过加密在数据去重复系统中保留冗余性
技术领域
本发明总体上涉及计算机,并且更特别地涉及一种用于在数据去重复系统被结合在其中的计算环境中保留冗余性和其它数据安全特性的方法、系统和计算机程序产品。
背景技术
在如今的社会中的多种设置中发现计算机和计算机系统。可以在家里、在工作地、在学校、在政府中和在其它设置中发现计算环境和网络。计算环境越来越多地在许多情况下在与向用户呈现的本地界面远离的一个或者多个存储环境中存储数据。
这些计算存储环境可以使用经常协调工作的许多存储设备(比如盘驱动)以存储、取回和更新然后可以向请求或者发送数据的主机计算机提供的大数据体。在一些情况下,多个数据存储子系统作为单个数据存储系统被共同地管理。这些子系统可以由组合若干处理单元或者处理单元群集的主机“sysplex”(系统联合体)配置管理。以这一方式,经常包括各种类型的存储设备的多层/多系统计算环境可以用来组织和处理大量数据。
发明内容
许多多层/多系统计算环境实施数据去重复计数以通过减少跨越存储设备的重复存储数量来改进存储性能。越来越多地利用数据去重复系统,因为它们帮助减少为了存储数据而需要的物理存储装置总数量。通过保证不多次存储重复数据来实现这一减少。取而代之,例如,如果数据组块与已经存储的数据组块匹配,则在虚拟存储映射中存储指向原有数据的指针而不是分配用于新数据组块的新物理存储空间。
然而,在某些情形中,去重复行为可能违反例如托管的应用的冗余性要求或者存储策略或者其它要求。存在对于如下机制的需要,其中通过允许对于无冗余性要求的其余数据出现去重复来保证具有这样的要求的数据安全而未削弱去重复系统的益处。
鉴于前文,公开了用于在数据去重复系统中保留数据冗余性的各种实施例。在一个实施例中,仅举例而言,公开了一种用于这样的保留的方法。将通过数据去重复系统写入的选择的数据段被加密,从而使得选择的数据段不经受去重复操作。
除了前述示例性实施例之外,各种系统和计算机程序实施例被提供并且供应有关优点。
附图说明
为了将容易理解本发明的优点,将通过参照在附图中图示的具体实施例来表现对以上简要地描述的本发明的更特别描述。应理解这些附图仅描绘本发明的典型实施例并且因此不会被视为限制它的范围,将通过使用附图用附加特点和细节描述和说明本发明,在附图中:
图1是图示了可以实施本发明的方面的示例性计算环境的框图;
图2是示出了数据存储系统的硬件结构的框图,同样可以在该数据存储系统中实施本发明的方面;
图3是可以在其中实施本发明的方面的示例性数据段的框图;
图4A是通过加密模块写入数据以获得加密的写入数据的示例性过程的框图;
图4B是通过数据去重复引擎和高速缓存向物理存储装置写入加密的写入数据的示例性过程的有关框图;
图5是根据本发明的用于在数据去重复系统中保证冗余性的示例性方法;
图6是可以在其中实施本发明的方面的用于处理数据的示例性方法;并且
图7是同样可以在其中实施本发明的方面的用于处理数据的附加示例性方法。
具体实施方式
在存储控制器中的数据去重复通常在应用的“场景后面”工作,并且有时可能在违背应用的需要来执行去重复操作时与应用的利益相反地操作。如果应用写入相同数据的多个副本并且旨在于保持多个物理副本而去重复子系统(去重复引擎)发现这些匹配副本并且以在存储数据之时对副本去重复作为结束,则这一情形可能出现。这可能对应用有害,该应用预计在各种位置发现多个副本,并且被存储子系统造成认为它已经这样做,但是实际上仅已经写入了数据的单个副本。
考虑以下示例。文件系统通常偏好于在虚拟盘上写入“超块”或者描述在基于块的存储设备上的文件系统的元数据段(或者其它元数据信息)的多个物理副本以保证冗余性。由于超块的内容相同,所以数据去重复将造成保持超块的单个物理副本并且使多个虚拟地址指向相同物理块。这一情形高度地不可取,因为丢失在超块的物理副本上的单个块可能致使文件系统全部不可用,因为没有超块的冗余副本。常规地,没有直接地解决数据去重复系统中的这一问题的现有方法。
可以运用各种间接方法以尝试解决这一问题。在一个示例中,数据去重复子系统从其切分(carve out)物理存储的存储池可以被镜像(即,包含相同数据的2个或者3个副本)。因此,尽管有去重复也可以创建多个冗余副本。然而,这由于以下原因而是对于应用的不充分保护。首先,应用可能希望保持相同数据的例如十个(10个)副本。然而,如果存储池被双向镜像,则它可能仅保持最多两个(2个)副本。第二,由于数据去重复切分跨度跨越大量存储装置和多个文件系统的物理存储池,所以很可能的是多个应用和文件系统共享相同物理存储池。因此有可能的是数据(比如超块)的一些关键副本变成被物理地放置于相同盘上。由于去重复将防止向多个物理位置写入相同数据的多个副本,所以关键数据的副本数目减少,并且它们可能变成被放置于用于多个文件系统的相同物理盘上。这增加单独故障变严重的风险。
例示的实施例提供用于解决先前讨论的问题的多个机制。这些机制的一个目的是保证在存储控制器中的去重复子系统(或者无论它位于何处)平衡减少数据副本数目的益处与对于物理分配关键数据的多个副本的应用要求。在以下例示的实施例中描述的方法中的每种方法可以在各种境况中被使用并且可以具有那些境况特有的附带益处。
在一个这样的实施例中,选择的数据段(比如块)可以由所属应用(owning application)加密,由此“蒙骗”数据去重复系统认为选择的数据是新的不重复的数据并且必须被分配到新存储空间。例如,对于数据块,其中所属应用必须存储相同数据的多个物理副本,应用可以用数据块的开始逻辑块地址(LBA)(或者备选地是用于数据块的某个其它熟知的密钥,该密钥将无需附加元数据存储空间(比如副本编号)(例如,用密钥1对第一副本进行加密、用密钥2对第二副本进行加密等))对数据加密。用不同密钥对相同副本进行加密将致使副本在检查去重复引擎看来“不同”,因此保证结合去重复引擎的存储控制器或者其它存储管理设备不会对块去重复。
以上提到的加密技术具有的优点在于存储控制器(或者同样是任何存储管理设备)无需改变任何方面以实施希望的特性。所属应用同样通过使用简单技术来“蒙骗”或者“欺骗”存储控制器并且这样做而未引起额外开销或者显著处理或者资源分配(例如,附加元数据存储开销,但是如本领域普通技术人员将领会到的那样保留附加资源)。
鉴于描述的实施例,通过允许应用规定是否必须对写入加密(并且由此判决哪个数据放弃去重复),向应用允许用于实施与它生成的数据关联的存储策略的灵活性。这样,应用处于比去重复系统更好的情形以确定选择的数据块是否即使相同仍然必须位于分离的物理位置。此外,存储控制器(或者其它存储管理设备)继续通过去重复和同时向应用允许足够控制以在需要时取消去重复来执行它的数据减少作用。
通过将选择的数据组块指明为加密的,由此向应用提供了很细粒度的控制,从而允许在实现方式中的灵活性而仍然保持去重复功能的优点并且保持用于关键数据的冗余性。
在以下描述中,参照附图,这些附图形成该描述的部分并且例示本发明的若干实施例。将理解,可以利用其它实施例并且可以进行结构和操作改变而未脱离本发明的范围。
转向图1,描绘了可以在其中实现本发明的方面的示例计算机系统10。计算机系统10包括连接到海量存储设备14和存储器设备16的中央处理单元(CPU)12。海量存储设备可以包括可以在独立盘冗余阵列(RAID)中配置的硬盘驱动(HDD)设备。可以在位于系统10中或者别处的设备14上执行在其中可以如进一步描述的那样实施本发明的方面的数据管理操作。存储器设备16可以包括比如电可擦除可编程只读存储器(EEPROM)或者许多有关设备这样的存储器。
存储器16被示出为包括应用程序15和应用程序17的,在该应用程序中,文件系统19以及加密模块21可操作。应用15和应用17可以创建、删除或者以别的方式管理在设备(比如海量存储设备14)中物理地存储的数据段(比如数据组块或者数据块)。文件系统19提供用于通过提供用于存储、取回和更新数据以及管理在包含它的设备上的可用空间的过程来组织预计在应用程序17终止之后保持的数据的手段。文件系统19以高效方式组织数据并且按照设备(比如计算机10和/或存储器16)的具体特性被调节。在一个实施例中,应用17可以是操作系统(OS)17,并且文件系统19保持在OS 17与文件系统19之间的紧密耦合。如本领域普通技术人员将领会到的那样,文件系统19可以提供用于控制对数据和元数据的访问的机制并且可以包含用于保证数据可靠性的机制(比如本发明的更多某些方面所必需的机制)。文件系统19可以提供用于多个应用程序15、17接近同时更新在相同文件中的数据的手段。
加密模块21可以与应用15、应用17、文件系统19或者其它计算硬件或者软件部件结合用来实现本发明的目的。在一个实施例中,例如,加密模块21处理被指明为放弃去重复的选择的数据组块以用弱安全密钥对数据组块的至少一部分加密(以同样避免引起显著处理和/或资源分配开销)。加密机制的实现方式可以如本领域普通技术人员将领会到的那样变化,并且加密机制本身可以根据特定实现方式而变化。在一个实施例中,加密机制的目标是“改变”数据的特性仅足以去重复引擎认为数据是“新”数据而需要尽可能最少量的资源和开销分配。
在例示实施例中,存储器设备16和海量存储设备14经由信号承载介质连接到CPU 12。此外,CPU 12通过通信端口18连接到具有附着的多个附加计算机系统22和24的通信网络20。计算机系统10可以包括用于计算机系统10的每个个别部件的一个或者多个处理器设备(例如,CPU 12)和附加存储器设备16以执行和实现这里描述的每个操作以实现本发明的目的。
图2是示出了根据本发明的计算机系统中的数据存储系统的硬件结构的示例性框图200。示出了主机计算机210、220、225,每个主机计算机充当用于执行数据处理作为数据存储系统200的部分的中央处理单元。主机(物理或者虚拟设备)210、220和225可以是用于在数据存储系统200中实现本发明的目的的一个或者多个新物理设备或者逻辑设备。在一个实施例中,仅举例而言,数据存储系统200可以被实施为System StorageTM DS8000TM。网络连接260可以是光纤信道结构、光纤信道点到点链路、在以太网结构之上的光纤信道光纤或者点到点链路、FICON或者ESCON I/O接口、任何其它I/O接口类型、无线网络、有线网络、LAN、WAN、异构、同构、公用(即因特网)、专用或者其任何组合。主机210、220和225可以是本地或者分布于一个或者多个位置之中并且可以被配备有存储控制器240的任何类型的结构(或者结构信道)(在图2中未示出)或者网络适配器260,比如光纤信道、FICON、ESCON、以太网、光纤、无线或者同轴适配器。数据存储系统200相应地被配备有用于通信的适当结构(在图2中未示出)或者网络适配器260。在图2中描绘包括存储控制器240和存储装置230的数据存储系统200。
为了有助于对这里描述的方法的更清楚理解,存储控制器240在图2中被示出为如以下将更具体描述的包括微处理器242、系统存储器243和非易失性存储装置(“NVS”)216的单个处理单元。注意,在一些实施例中,存储控制器240由多个处理单元组成,这些处理单元各自具有它们自己的处理器联合体和系统存储器,并且由在数据存储系统200内的专用网络互连。存储装置230可以由被存储网络连接到存储控制器240的一个或者多个存储设备(比如存储阵列)组成。
在一些实施例中,可以在回路架构中连接在存储装置230中包括的设备。存储控制器240管理存储装置230并且有助于处理以存储装置230为目的的写入和读取请求。存储控制器240的系统存储器243存储处理器242可以访问的用于执行与管理存储装置230关联的功能的程序指令和数据。在一个实施例中,系统存储器243包括操作软件250、与操作软件250关联或者通信并且被部分地配置用于实现本发明的功能。如图2中所示,系统存储器243也可以包括用于存储装置230的高速缓存245或者与该高速缓存245通信,该高速缓存245也被称为“高速缓存存储器”,该高速缓存245用于缓冲分别是指写入/读取请求及其关联的数据的“写入数据”和“读取数据”。在一个实施例中,高速缓存245在系统存储器243外部的设备中被分配,而仍然保持可由微处理器242访问并且可以服务于除了实现如这里描述的操作之外还提供防范数据丢失的附加安全性。
在一些实施例中,高速缓存245用易失性存储器和非易失性存储器来实施并且经由本地总线(在图2中未示出)耦合到微处理器242以用于数据存储系统200的增强的性能。在数据存储控制器中包括的NVS 216可由微处理器242访问并且服务于提供用于本发明的如在其它图中描述的操作和执行的附加支持。NVS 216也可以被称为“持续”高速缓存或者“高速缓存存储器”并且用非易失性存储器来实施,该非易失性存储器可以利用或者可以不利用外部功率以保持在其中存储的数据。NVS可以在高速缓存245中和与高速缓存245一起被存储以用于与实现本发明的目的相适的任何目的。在一些实施例中,备份功率源(在图2中未示出)(比如电池)在供给数据存储系统200的功率失去的情况下向NVS 216供应充分功率以保持在其中存储的数据。在某些实施例中,NVS 216的容量小于或者等于高速缓存245的总容量。
存储装置230可以物理地由一个或者多个存储设备(比如存储阵列)组成。存储阵列是个别存储设备(比如硬盘)的逻辑分组。在某些实施例中,存储装置230由JBOD(简单盘簇)阵列或者RAID(独立盘冗余阵列)阵列组成。物理存储阵列的汇集可以被进一步组合以形成将物理存储从逻辑配置去关联的等级(rank)。在等级中的存储空间可以被分配成逻辑卷,这些逻辑卷定义在读取/写入请求中指定的存储位置。
在一个实施例中,仅举例而言,如图2中所示的存储系统可以包括逻辑卷或者简称为“卷”,可以具有不同种类的分配。存储装置230a、230b和230n被示出为在数据存储系统200中的等级并且在这里被称为等级230a、230b和230n。等级可以在数据存储系统200本地,或者可以位于物理地远离的位置。换言之,本地存储控制器可以与远程存储控制器连接并且管理在远程位置的存储。等级230a被示出为被配置有两个全部卷234和236以及一个部分卷232a。等级230b被示出为具有另一部分卷232b。因此跨越等级230a和230b分配卷232。等级230n被示出为被完全地分配给卷238--也就是说,等级230n是指用于卷238的整个物理存储。根据以上示例,将领会到等级可以被配置为包括一个或者多个部分和/或全部卷。卷和等级还可以被划分成所谓的“轨道”,这些轨道代表固定存储块。轨道因此与给定的卷关联并且可以被给予给定的等级。
存储控制器240包括用于控制通向主机计算机210、220、225的光纤信道协议的控制交换机241、用于控制全部存储控制器240的微处理器242、用于存储用于控制存储控制器240的操作的微程序(操作软件)250的、用于控制的数据和随后描述的每个表的非易失性控制器存储器243、用于暂时地存储(缓冲)数据的高速缓存245以及用于辅助高速缓存245读取和写入数据的缓冲器244、用于控制协议(该协议用于控制向或者从存储设备230的数据传送)的控制交换机241以及压缩操作模块255和可以在其中设置信息的压缩操作列表模块257。可以与本发明一起实施多个缓冲器244以辅助如这里描述的操作。
在一个实施例中,通过作为接口的网络适配器(这可以是光纤信道)260(即,经由被称为“结构”的至少一个交换机)连接主机计算机或者一个或者多个物理或者虚拟设备210、220、225和存储控制器240。在一个实施例中,将描述在图2中所示的系统的操作。微处理器242可以控制存储器243以存储来自主机设备(物理或者虚拟)210的命令信息和用于标识主机设备(物理或者虚拟)210的信息。控制交换机241、缓冲器244、高速缓存245、操作软件250、微处理器242、存储器243、NVS 216、压缩操作模块255和压缩操作列表模块257相互通信并且可以是分离的部件或者一个个别部件。另外,可以与存储器243一起包括如果不是所有部件则若干部件,比如操作软件250。在所示设备内的部件中的每个部件可以被链接在一起并且可以相互通信以用于与本发明相适的目的。
存储控制器240被示出为包括数据去重复引擎255,在该数据去重复引擎255中处理多个写入数据259。数据去重复引擎255可以在结构上是一个完整模块或者可以与其它个别模块关联和/或被结合在其它个别模块内。数据去重复引擎255被配置用于与存储控制器240的其它部件(比如微处理器242)结合对通过存储控制器240向存储装置230传递的写入数据259执行数据去重复操作。
如先前指示的那样,存储控制器240包括高速缓存245(或者可以被统称为高速缓存系统),该高速缓存245从主机210、220和225或者相似设备接受然后被放置于高速缓存存储器245中的写入数据。数据去重复引擎255然后针对重复来测试在高速缓存存储器245中的写入数据。用如所示的加密密钥257(加密的数据257)对应用17(图1)希望保护的免于去重复操作的写入数据259加密。写入数据259中的具有通过数据去重复引擎255传递的加密密钥257的写入数据259向数据去重复引擎255指明它们是“新”数据,并且由此不经受去重复操作(例如,用指向已经被放置于存储装置230中的现有数据的指针来替换)。
在一个实施例中,应用17/文件系统19首先确定给定的数据块是否必须多次存储于物理存储装置上。这可以例如是与文件系统19本身关联的超块元数据或者其它相关文件系统信息。应用17然后在发布写入之前利用用于该虚拟设备的唯一密钥对那些数据块加密。作为后继步骤,应用可以与加密的数据257一起向下层盘(设备)驱动发起写入请求,从而在效果上指明这一数据块是“新的”并且决不被去重复,即使未加密的块与先前写入的数据块相同。所属应用可以使用该块的LBA作为弱加密密钥在每盘块基础上执行加密。
这里同样,选择的加密方法(包括加密密钥)被选择使得密钥在它以后从下层存储控制器或者存储管理设备被读取回时易于推断。加密密钥的示例可以包括以下各项:(1)选择的数据块的开始LBA;(2)数据块在文件内的偏移;以及本领域普通技术人员将熟悉的其它相似加密机制。加密密钥应当为弱和可预测(即,所属应用将知道用于具体元块的加密密钥将是什么而别处不存储密钥)。
在后继步骤中,盘驱动转而预备写入命令,比如发给存储控制器240的小型计算机系统接口(SCSI)命令。在接收指明的加密的数据块时,存储控制器240经由数据去重复引擎255略去如本领域普通技术人员将领会到的指纹生成、匹配等去重复步骤,并且向新物理盘位置上直接地写入选择的数据块,即使可能已经有相同数据的在存储控制器240上存储的更早实例。随后,在后续读取这些数据块(为应用所熟知)时,应用使用熟知和简单的密钥(例如,弱密钥/加密机制)对数据解密。由于这里使用的加密技术不是数据安全性所必需的,所以可以尽可能高效地最小化用于执行此类技术的任何开销。
在一个优选实施例中,应当选择加密或者数据变换函数,从而使得所得数据的大小保持不变。例如,在将变换512字节的数据的情形中,产生512字节的所得加密的数据。
在一个实施例中,所属应用可以选择对作为单位而写入的多个数据块加密。数据变换函数(加密函数)应当使得对每个个别块解密返回用于这一个块的原有数据。备选地,应用应当读取这些多块单位作为数据组块并且作为单位对它们解密。
现在转向图3,图示了可以在其中结合所示实施例的各种方面的示例性数据段259(即,块)的框图300。数据段259包括如所示向块A的一部分追加的弱加密密钥302(比如当前副本1、2、3等)。
图4A图示了如被描绘为示例性流程的本发明的各种功能方面的框图400。具体而言,在向存储控制器发布写入命令之前首先通过加密模块21(图1)传递尚未用任何去重复操作处理的将通过数据去重复引擎写入402的数据,其中如所示向选择的数据应用弱加密并且生成加密的写入数据404。
继续图4B,框图406图示了本发明的同样如被描绘为示例性流程的附加各种功能方面。具体而言,向存储控制器传递加密的写入数据408以向存储装置230写入(同样为图2)。如所示通过数据去重复引擎255传递加密的写入数据,其中加密的数据259与现有的潜在重复数据相比被视为新数据。这样,数据去重复引擎与写入请求410结合向存储控制器的其它部分(比如高速缓存系统245)传递加密的数据,并且在存储装置230中的新空间被分配用于加密的数据,它最终被写入在该新空间中。
鉴于前文,以下图5是可以在其中实施所示实施例的方面的用于在具有数据去重复系统的存储子系统中保证数据冗余性的示例性方法500。方法500始于(步骤502)对将通过数据去重复系统写入的选择的数据段加密,从而使得选择的数据段不经受去重复操作(步骤504)。方法500然后结束(步骤506)。
在以下图6中,图示了这里同样可以在其中实施本发明的各种方面的用于数据处理的示例性方法600。方法600始于(步骤602)所属应用选择唯一加密密钥以与由所属应用选择为放弃去重复的数据段关联(步骤604)。所属应用和/或文件系统然后用唯一加密密钥对选择的数据段加密(步骤606)。
作为后继步骤,与加密的选择的数据段一起向存储控制器提供写入请求(步骤608)。然后通过去重复引擎处理加密的数据段,其中阻止对加密的数据执行去重复操作,因为选择的数据段被去重复引擎识别/视为“新”数据(步骤610)。
在步骤612中,在新分配的物理存储位置中写入加密的数据段。在加密的数据的以后后续读取中,然后向所属应用和/或文件系统返回加密的数据(步骤614)。然后,应用和/或文件系统使用附属的加密算法对加密的数据段解密(步骤616),该加密算法同样如本领域普通技术人员将领会到的那样可以根据特定应用而变化、但是可以被选择为最小化开销和带宽。方法600然后结束(步骤618)。
以下图7是这里同样结合本发明的各种方面的用于处理数据的有关示例性方法700。方法700始于(步骤702)存储控制器/数据去重复引擎接收写入请求以用于与将写入的附带数据一起处理(步骤704)。
在步骤706中,方法700查询附带数据是否被加密(步骤706)。如果是,则去重复引擎/存储控制器放弃执行数据去重复操作(步骤708),并且在新分配的物理存储位置中写入加密的数据(步骤710)。注意,出于例示的目的,“方法”700被视为查询数据是否被加密。然而,在现实中,数据去重复系统不理解并且不查询数据是否被加密。如先前说明的那样,借助加密,数据块将不会与所属应用先前写入的它的重复副本匹配。因此,去重复系统将视这为“新”数据块并且将向物理存储写入块。返回到步骤706,如果附带数据未被加密,则去重复引擎/存储控制器对数据执行各种去重复操作(步骤712)。方法700然后结束(步骤714)。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在任何一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置、器件或者任意以上的组合。计算机可读存储介质的更具体的示例(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明示例实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
尽管已经具体例示了本发明的一个或者多个实施例,但是本领域普通技术人员将领会到可以进行对那些实施例的修改和适配而未脱离本发明的如在所附权利要求中阐述的范围。

Claims (27)

1.一种用于由处理器在计算环境中的数据去重复系统中保留数据冗余性的方法,包括:
对将通过所述数据去重复系统而写入的选择的数据段加密,从而使得所述选择的数据段不经受去重复操作。
2.根据权利要求1所述的方法,还包括通过所述计算环境处理加密的所述选择的数据段,从而使得阻止对所述选择的数据段执行所述去重复操作。
3.根据权利要求2所述的方法,其中对所述选择的数据段加密还包括在向下层存储控制器设备发布写入请求之前利用用于关联的虚拟设备的唯一加密密钥对所述选择的数据段加密。
4.根据权利要求3所述的方法,其中用所述唯一密钥对所述选择的数据段加密还包括选择将与用于所述选择的数据段的逻辑块地址(LBA)的开始和所述选择的数据段在文件内的偏移之一关联的所述加密密钥,其中选择加密函数以保持通过所述加密函数处理的加密的数据的大小。
5.根据权利要求4所述的方法,其中对所述选择的数据段加密包括选择作为单位而写入的多个选择的数据段,从而使得对所述多个选择的数据段中的每个数据段解密之一返回用于每个段的原有数据,并且所述多个选择的数据段中的每个数据段被作为所述单位解密。
6.根据权利要求2所述的方法,其中处理加密的所述选择的数据段包括通过在所述计算环境的存储控制器中的去重复引擎发布对于加密的所述选择的数据段的写入请求。
7.根据权利要求6所述的方法,其中在执行对于加密的所述选择的数据段的所述写入请求期间,所述数据去重复引擎将加密的所述选择的数据段识别为新数据段并且阻止执行所述去重复操作。
8.根据权利要求1所述的方法,还包括在对所述选择的数据段的后续读取操作时对所述选择的数据段解密。
9.根据权利要求8所述的方法,其中对所述选择的数据段解密包括用弱、唯一和可预测的加密密钥对所述选择的数据段解密。
10.一种用于在计算环境中的数据去重复系统中保留数据冗余性的系统,包括:
文件系统模块;以及
与所述文件系统模块可操作地通信的存储控制器,其中:
所述文件系统模块被配置用于对将通过所述数据去重复系统而写入的选择的数据段加密,从而使得所述选择的数据段不经受去重复操作。
11.根据权利要求10所述的系统,其中所述存储控制器被配置用于通过所述计算环境处理加密的所述选择的数据段,从而使得阻止对所述选择的数据段执行所述去重复操作。
12.根据权利要求11所述的系统,其中所述文件系统模块还被配置用于在向所述存储控制器发布写入请求之前利用用于关联的虚拟设备的唯一密钥对所述选择的数据段加密。
13.根据权利要求12所述的系统,其中所述加密密钥被选择为与用于所述选择的数据段的逻辑块地址(LBA)的开始和所述选择的数据段在文件内的偏移之一关联,其中加密函数被选择为保持通过所述加密函数处理的加密的数据的大小。
14.根据权利要求13所述的系统,其中所述文件系统模块还被配置用于选择作为单位而写入的多个选择的数据段,从而使得对所述多个选择的数据段中的每个数据段解密之一返回用于每个段的原有数据,并且所述多个选择的数据段中的每个数据段被作为所述单位解密。
15.根据权利要求11所述的系统,还包括:
与所述存储控制器关联的数据去重复引擎;
其中所述文件系统模块还被配置用于通过所述数据去重复引擎发布对于加密的所述选择的数据段的写入请求。
16.根据权利要求15所述的系统,其中在执行对于加密的所述选择的数据段的所述写入请求期间,所述数据去重复引擎将加密的所述选择的数据段识别为新数据段并且阻止执行所述去重复操作。
17.根据权利要求11所述的系统,其中所述文件系统模块还被配置用于在对所述选择的数据段的后续读取操作时对所述选择的数据段解密。
18.根据权利要求17所述的系统,其中用弱、唯一和可预测的加密密钥对所述选择的数据段解密。
19.一种用于由处理器在计算环境中的数据去重复系统中保留数据冗余性的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有在其中存储的计算机可读程序代码部分,所述计算机可读程序代码部分包括:
第一可执行部分,用于对将通过所述数据去重复系统而写入的选择的数据段加密,从而使得所述选择的数据段不经受去重复操作。
20.根据权利要求19所述的计算机程序产品,还包括:第二可执行部分,用于通过所述计算环境处理加密的所述选择的数据段,从而使得阻止对所述选择的数据段执行所述去重复操作。
21.根据权利要求20所述的计算机程序产品,还包括:第三可执行部分,用于按照对所述选择的数据段加密在向下层存储控制器设备发布写入请求之前利用用于关联的虚拟设备的唯一加密密钥对所述选择的数据段加密。
22.根据权利要求21所述的计算机程序产品,还包括:第四可执行部分,用于按照用所述唯一加密密钥对所述选择的数据段加密来选择将与用于所述选择的数据段的逻辑块地址(LBA)的开始和所述选择的数据段在文件内的偏移之一关联的所述加密密钥,其中选择加密函数以保持通过所述加密函数处理的加密的数据的大小。
23.根据权利要求22所述的计算机程序产品,还包括:第五可执行部分,用于按照对所述选择的数据段加密来选择作为单位而写入的多个选择的数据段,从而使得对所述多个选择的数据段中的每个数据段解密之一返回用于每个段的原有数据,并且所述多个选择的数据段中的每个数据段被作为所述单位解密。
24.根据权利要求20所述的计算机程序产品,还包括:第三可执行部分,用于按照处理加密的所述选择的数据段来通过在所述计算环境的存储控制器中的去重复引擎发布对于加密的所述选择的数据段的写入请求。
25.根据权利要求24所述的计算机程序产品,其中在执行对于加密的所述选择的数据段的所述写入请求期间,所述数据去重复引擎将加密的所述选择的数据段识别为新数据段并且阻止执行所述去重复操作。
26.根据权利要求20所述的计算机程序产品,还包括:第三可执行部分,用于在对所述选择的数据段的后续读取操作时对所述选择的数据段
27.根据权利要求26所述的计算机程序产品,还包括:第四可执行部分,用于按照对所述选择的数据段解密来用弱、唯一和可预测的加密密钥对所述选择的数据段解密。
CN201380021100.6A 2012-04-23 2013-01-14 通过加密在数据去重复系统中保留冗余性 Active CN104272300B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/453,259 2012-04-23
US13/453,259 US8996881B2 (en) 2012-04-23 2012-04-23 Preserving redundancy in data deduplication systems by encryption
PCT/CN2013/070416 WO2013159582A1 (en) 2012-04-23 2013-01-14 Preserving redundancy in data deduplication systems by encryption

Publications (2)

Publication Number Publication Date
CN104272300A true CN104272300A (zh) 2015-01-07
CN104272300B CN104272300B (zh) 2018-12-21

Family

ID=49381276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380021100.6A Active CN104272300B (zh) 2012-04-23 2013-01-14 通过加密在数据去重复系统中保留冗余性

Country Status (7)

Country Link
US (4) US8996881B2 (zh)
EP (1) EP2842063A4 (zh)
JP (1) JP6109293B2 (zh)
KR (1) KR20140128403A (zh)
CN (1) CN104272300B (zh)
IN (1) IN2014CN04774A (zh)
WO (1) WO2013159582A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI808919B (zh) * 2018-05-22 2023-07-11 日商鎧俠股份有限公司 控制非揮發性記憶體之記憶體系統及方法

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US9442954B2 (en) * 2012-11-12 2016-09-13 Datawise Systems Method and apparatus for achieving optimal resource allocation dynamically in a distributed computing environment
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US9646039B2 (en) 2013-01-10 2017-05-09 Pure Storage, Inc. Snapshots in a storage system
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
US9792063B2 (en) * 2014-01-15 2017-10-17 Intel Corporation Deduplication-based data security
US20150242640A1 (en) * 2014-02-24 2015-08-27 Western Digital Technologies, Inc. Encryption key selection
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
WO2015152935A1 (en) 2014-04-04 2015-10-08 Hewlett-Packard Development Company, L.P. Storing and retrieving ciphertext in data storage
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
US9397832B2 (en) * 2014-08-27 2016-07-19 International Business Machines Corporation Shared data encryption and confidentiality
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
WO2016048331A1 (en) 2014-09-25 2016-03-31 Hewlett Packard Enterprise Development Lp Storage of a data chunk with a colliding fingerprint
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9864769B2 (en) 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
JP6666540B2 (ja) 2015-06-15 2020-03-18 富士通株式会社 ストレージ制御装置、及びプログラム
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10009243B2 (en) 2015-08-27 2018-06-26 International Business Machines Corporation Cross-tenant analysis of similar storage environments to recommend storage policy changes
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10089024B2 (en) * 2015-11-19 2018-10-02 Red Hat Israel, Ltd. Memory deduplication protection for memory pages
US20170220295A1 (en) * 2016-02-02 2017-08-03 Intel Corporation Technologies for reducing duplication of stored data
US10157153B2 (en) * 2016-02-03 2018-12-18 Qualcomm Incorporated Inline cryptographic engine (ICE) for peripheral component interconnect express (PCIe) systems
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10235396B2 (en) 2016-08-29 2019-03-19 International Business Machines Corporation Workload optimized data deduplication using ghost fingerprints
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10545861B2 (en) 2016-10-04 2020-01-28 Pure Storage, Inc. Distributed integrated high-speed solid-state non-volatile random-access memory
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) * 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
JP7109992B2 (ja) * 2018-05-22 2022-08-01 キオクシア株式会社 メモリシステムおよび制御方法
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
US10795861B2 (en) * 2018-06-20 2020-10-06 International Business Machines Corporation Online measurement of potential deduplication efficiency
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US11226942B2 (en) * 2019-10-16 2022-01-18 International Business Machines Corporation Controlling deduplication in a storage pool
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
CN111338572B (zh) * 2020-02-18 2021-09-14 电子科技大学 一种可调节加密重复数据删除方法
US11573929B2 (en) 2020-04-09 2023-02-07 Kyndryl, Inc. Deduplication of encrypted data using multiple keys
US11803648B2 (en) 2020-12-09 2023-10-31 International Business Machines Corporation Key in lockbox encrypted data deduplication

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1341240A (zh) * 1999-12-20 2002-03-20 大日本印刷株式会社 分布式数据档案设备和系统
CN101656720A (zh) * 2009-08-12 2010-02-24 北京握奇数据系统有限公司 对信息系统中访问对象信息统一维护的方法及装置
US20100268960A1 (en) * 2009-04-17 2010-10-21 Sun Microsystems, Inc. System and method for encrypting data
US8117464B1 (en) * 2008-04-30 2012-02-14 Netapp, Inc. Sub-volume level security for deduplicated data

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111625A1 (en) * 2001-02-14 2004-06-10 Duffy Dominic Gavan Data processing apparatus and method
EP1271951A1 (en) * 2001-06-22 2003-01-02 Octalis S.A. Conditional access system for digital data by key decryption and re-encryption
WO2003046721A1 (en) 2001-11-23 2003-06-05 Commvault Systems, Inc. Selective data replication system and method
US20030115447A1 (en) * 2001-12-18 2003-06-19 Duc Pham Network media access architecture and methods for secure storage
US20040131182A1 (en) * 2002-09-03 2004-07-08 The Regents Of The University Of California Block cipher mode of operation for constructing a wide-blocksize block cipher from a conventional block cipher
US8010498B2 (en) 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
JP4620518B2 (ja) * 2005-04-26 2011-01-26 株式会社ケンウッド 音声データベース製造装置、音片復元装置、音声データベース製造方法、音片復元方法及びプログラム
US20070168350A1 (en) * 2006-01-17 2007-07-19 Tom Utiger Management of non-traditional content repositories
US9465823B2 (en) 2006-10-19 2016-10-11 Oracle International Corporation System and method for data de-duplication
US7873809B2 (en) 2007-03-29 2011-01-18 Hitachi, Ltd. Method and apparatus for de-duplication after mirror operation
JP5060876B2 (ja) 2007-08-30 2012-10-31 株式会社日立製作所 ストレージシステム及びストレージシステムの消費電力低減方法
US8209506B2 (en) 2007-09-05 2012-06-26 Emc Corporation De-duplication in a virtualized storage environment
JP5026213B2 (ja) 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US7979670B2 (en) 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US7814074B2 (en) 2008-03-14 2010-10-12 International Business Machines Corporation Method and system for assuring integrity of deduplicated data
US7567188B1 (en) 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US9395929B2 (en) 2008-04-25 2016-07-19 Netapp, Inc. Network storage server with integrated encryption, compression and deduplication capability
US20090319772A1 (en) * 2008-04-25 2009-12-24 Netapp, Inc. In-line content based security for data at rest in a network storage system
US7908436B1 (en) 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US8346730B2 (en) 2008-04-25 2013-01-01 Netapp. Inc. Deduplication of data on disk devices based on a threshold number of sequential blocks
US8219524B2 (en) * 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US8392791B2 (en) 2008-08-08 2013-03-05 George Saliba Unified data protection and data de-duplication in a storage system
US8086799B2 (en) 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US8074049B2 (en) 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
US8290915B2 (en) * 2008-09-15 2012-10-16 International Business Machines Corporation Retrieval and recovery of data chunks from alternate data stores in a deduplicating system
US8190823B2 (en) 2008-09-18 2012-05-29 Lenovo (Singapore) Pte. Ltd. Apparatus, system and method for storage cache deduplication
US8131687B2 (en) 2008-11-13 2012-03-06 International Business Machines Corporation File system with internal deduplication and management of data blocks
US9058118B1 (en) * 2008-12-31 2015-06-16 Symantec Corporation Techniques for synchronizing and/or consolidating storage areas
US8271718B2 (en) 2009-03-11 2012-09-18 Hitachi, Ltd. Storage system and control method for the same, and program
US8140491B2 (en) 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US8401996B2 (en) * 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8412848B2 (en) * 2009-05-29 2013-04-02 Exagrid Systems, Inc. Method and apparatus for content-aware and adaptive deduplication
US8401181B2 (en) 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8731190B2 (en) 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
GB2472072B (en) 2009-07-24 2013-10-16 Hewlett Packard Development Co Deduplication of encoded data
US8200641B2 (en) 2009-09-11 2012-06-12 Dell Products L.P. Dictionary for data deduplication
JP5303038B2 (ja) * 2009-09-18 2013-10-02 株式会社日立製作所 重複したデータを排除するストレージシステム
FR2952778B1 (fr) 2009-11-17 2011-12-23 Thales Sa Procede de transmission de donnees securise et systeme de chiffrement et de dechiffrement permettant une telle transmission
US9239843B2 (en) 2009-12-15 2016-01-19 Symantec Corporation Scalable de-duplication for storage systems
US8660994B2 (en) 2010-01-28 2014-02-25 Hewlett-Packard Development Company, L.P. Selective data deduplication
US8108447B2 (en) * 2010-03-11 2012-01-31 Symantec Corporation Systems and methods for garbage collection in deduplicated data systems
JP5434705B2 (ja) 2010-03-12 2014-03-05 富士通株式会社 ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
JP4892072B2 (ja) 2010-03-24 2012-03-07 株式会社東芝 ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法
US8453031B2 (en) 2010-03-24 2013-05-28 International Business Machines Corporation Data deduplication using CRC-seed differentiation between data and stubs
US8442942B2 (en) 2010-03-25 2013-05-14 Andrew C. Leppard Combining hash-based duplication with sub-block differencing to deduplicate data
US8954669B2 (en) 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume
US8886613B2 (en) 2010-10-12 2014-11-11 Don Doerner Prioritizing data deduplication
US20120095968A1 (en) 2010-10-17 2012-04-19 Stephen Gold Storage tiers for different backup types
US8380681B2 (en) 2010-12-16 2013-02-19 Microsoft Corporation Extensible pipeline for data deduplication
US8539148B1 (en) 2010-12-22 2013-09-17 Emc Corporation Deduplication efficiency
CN102156727A (zh) 2011-04-01 2011-08-17 华中科技大学 一种采用双指纹哈希校验的重复数据删除方法
CN102281320A (zh) 2011-04-25 2011-12-14 程旭 控制云存储中数据冗余的方法及装置
CN102221982B (zh) 2011-06-13 2013-09-11 北京卓微天成科技咨询有限公司 块级虚拟化存储设备上实现重复数据删除的方法及系统
US20120317084A1 (en) 2011-06-13 2012-12-13 Beijing Z&W Technology Consulting Co., Ltd. Method and system for achieving data de-duplication on a block-level storage virtualization device
US8930307B2 (en) 2011-09-30 2015-01-06 Pure Storage, Inc. Method for removing duplicate data from a storage array
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8527544B1 (en) 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
US8468138B1 (en) 2011-12-02 2013-06-18 International Business Machines Corporation Managing redundant immutable files using deduplication in storage clouds
US9904565B2 (en) 2012-02-01 2018-02-27 Veritas Technologies Llc Subsequent operation input reduction systems and methods for virtual machines
US8712976B1 (en) 2012-03-28 2014-04-29 Emc Corporation Managing deduplication density
US8812456B2 (en) 2012-03-30 2014-08-19 Netapp Inc. Systems, methods, and computer program products for scheduling processing to achieve space savings

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1341240A (zh) * 1999-12-20 2002-03-20 大日本印刷株式会社 分布式数据档案设备和系统
US8117464B1 (en) * 2008-04-30 2012-02-14 Netapp, Inc. Sub-volume level security for deduplicated data
US20100268960A1 (en) * 2009-04-17 2010-10-21 Sun Microsystems, Inc. System and method for encrypting data
CN101656720A (zh) * 2009-08-12 2010-02-24 北京握奇数据系统有限公司 对信息系统中访问对象信息统一维护的方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI808919B (zh) * 2018-05-22 2023-07-11 日商鎧俠股份有限公司 控制非揮發性記憶體之記憶體系統及方法

Also Published As

Publication number Publication date
JP6109293B2 (ja) 2017-04-05
WO2013159582A1 (en) 2013-10-31
KR20140128403A (ko) 2014-11-05
US9792450B2 (en) 2017-10-17
IN2014CN04774A (zh) 2015-09-18
US8996881B2 (en) 2015-03-31
US20130283058A1 (en) 2013-10-24
US20150154411A1 (en) 2015-06-04
EP2842063A1 (en) 2015-03-04
JP2015515216A (ja) 2015-05-21
US20150154410A1 (en) 2015-06-04
CN104272300B (zh) 2018-12-21
US20130283062A1 (en) 2013-10-24
EP2842063A4 (en) 2015-05-06
US9824228B2 (en) 2017-11-21
US8990581B2 (en) 2015-03-24

Similar Documents

Publication Publication Date Title
CN104272300A (zh) 通过加密在数据去重复系统中保留冗余性
TWI808919B (zh) 控制非揮發性記憶體之記憶體系統及方法
CN103425937B (zh) 用于在计算环境中加密清除选定加密数据的方法和系统
JP5117748B2 (ja) 暗号化機能を備えたストレージ仮想化装置
US10133663B2 (en) Systems and methods for persistent address space management
JP6227007B2 (ja) データ圧縮領域へのデータの実時間分類
TWI710900B (zh) 儲存裝置及方法
US9055044B2 (en) Computer system and method of controlling computer system
US8990588B2 (en) Storage system, storage control apparatus, and storage control method
JP6568212B2 (ja) 重複排除システムのハッシュ・ベース・マルチテナンシ
JP4964714B2 (ja) ストレージ装置及びデータの管理方法
CN103164293B (zh) 扩展计数密钥数据的基于块的端到端数据保护方法和系统
US9032218B2 (en) Key rotation for encrypted storage media using a mirrored volume revive operation
CN103389882A (zh) 在计算环境中提高散列索引密钥查找高速缓存性能
US20080101605A1 (en) Storage system provided with an encryption function
CN104246774A (zh) 通过指示符在数据重复消除系统中保留冗余
US10915448B2 (en) Storage device initiated copy back operation
CN104272275A (zh) 增强数据缓存性能
CN104050233A (zh) 有效计算相似搜索值和摘要块边界的方法和系统
US10846441B2 (en) Computer system
CN104636078B (zh) 用于对多种类型的存储等级组的非易失性存储(nvs)的有效阈值化的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant