CN104040516A - 用于数据去重的方法、设备和系统 - Google Patents
用于数据去重的方法、设备和系统 Download PDFInfo
- Publication number
- CN104040516A CN104040516A CN201180076259.9A CN201180076259A CN104040516A CN 104040516 A CN104040516 A CN 104040516A CN 201180076259 A CN201180076259 A CN 201180076259A CN 104040516 A CN104040516 A CN 104040516A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- memory
- duplicate removal
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
用于限制存储后端中副本数据存储的技术和机制。在一个实施例中,存储后端的存储装置从存储前端接收规定将数据写入存储后端的写命令。在另一实施例中,存储装置计算是写命令的对象的数据的数据签名,并提供给存储前端。基于由存储装置提供的数据签名,存储前端的去重引擎确定是否要执行去重操作。
Description
技术领域
本文讨论的实施例一般涉及计算机数据存储。更具体地说,某些实施例以各种方式涉及用于提供存储的数据的去重(deduplication)的技术。
背景技术
通常,数据去重技术计算表示存储在存储系统的一个或多个数据块中的数据的哈希值。保存哈希值以便随后在哈希值字典中引用,哈希值各自表示当前存储在存储系统中的相应数据。对将附加数据存储在存储系统中的随后请求根据附加数据的哈希是否匹配字典中的任何哈希值进行处理。如果附加数据的哈希匹配表示当前存储的数据的哈希,则存储系统有可能已经存储了附加数据的副本。因此,可避免向存储系统写附加数据,以便改进存储空间的利用。
常规数据去重一般依赖于两种主要方法——在线(in-line)去重和后处理去重之一。用在线去重,存储前端在附加数据可被写入存储后端之前标识附加数据是否有可能是某个当前存储的数据的副本。在此类附加数据被确定为可能是副本的情况下,存储前端事先阻止向存储后端写副本附加数据。
用后处理去重,存储前端向存储后端装置写附加数据。随后,存储前端从存储后端读回附加数据,并且标识已经写入的附加数据是否有可能是某个其它当前存储的数据的副本。在此类已经写入的附加数据被确定为可能是副本的情况下,存储前端命令存储后端擦除已经写入的附加数据。
在线去重倾向于在存储前端与存储后端之间使用比较小的通信带宽,并且倾向于使用比较少的存储后端资源,二者都导致性能节省。然而,通过服务于未决的写请求而在线计算和检查哈希需要存储后端中的更鲁棒、昂贵的处理硬件,并且倾向于降低通过存储前端的存储路径的性能。相比之下,更常见的后处理去重对于存储前端的更低处理要求权衡存储前端与存储后端之间通信带宽的附加使用和存储后端资源的附加使用。
附图说明
在附图中作为示例而非限制图示了本发明的实施例,并且附图中:
图1是图示根据实施例实现存储去重的系统的元件的框图。
图2是图示根据实施例实现存储去重的系统的元件的框图。
图3是图示根据实施例交换去重信息的存储前端的元件的框图。
图4是图示根据实施例确定去重信息的存储装置的元件的框图。
图5是图示根据实施例用于实现数据去重的方法的元素的流程图。
图6是图示根据实施例用于确定数据去重信息的方法的元素的流程图。
图7是图示根据实施例提供数据去重信息的计算机平台的元件的框图。
具体实施方式
图1图示了根据实施例用于实现数据去重的存储系统100的元件。存储系统100例如可包含存储前端120和耦合到其的一个或多个客户端装置(由说明性客户端110a、…、110n表示)。尽管存储系统100的特征在本文中依据由客户端110a、…、110n请求的数据存储进行讨论,但根据不同实施例,此类讨论可扩展成应用于各种各样一个或多个附加或备选客户端中的任一客户端。
其中一个或多个客户端110a、…、110n可与存储系统100的存储后端140通信——例如以各种方式请求对存储后端140的数据读访问和/或数据写访问。存储前端120例如可包括计算机平台的硬件、固件和/或软件以提供支持来自客户端110a、…、110n的请求的一个或多个存储管理服务。由存储前端120提供的一个或多个存储管理服务例如可包含数据去重服务,以便评估存储在存储后端140中的数据是否可能是已经存储在存储后端140中的其它数据的副本。例如,存储前端120可包含去重引擎122——例如硬件、固件和/或软件逻辑——以执行此类去重评估。
在实施例中,存储前端120提供支持由存储后端140的数据存储的一个或多个附加服务。作为说明而非限制,存储前端120可提供一个或多个安全服务以保护存储后端140中的一些或所有。例如,存储前端120可包含或者以其它方式访问一个或多个恶意检测、阻止和/或响应服务——例如以降低病毒、蠕虫、木马、间谍软件和/或影响存储前端120的操作或对存储前端120的访问的其它恶意软件的威胁。在一个实施例中,恶意软件检测可至少部分基于数据指纹信息的评估,诸如根据本文讨论的各种技术交换的数据指纹信息。
在实施例中,存储前端120中的一些或所有例如包含个人计算机或者以其它方式驻留在其上,个人计算机诸如台式计算机、膝上型计算机、手持计算机——例如平板、掌上电脑、手机、媒体播放器等——和/或用于服务于来自客户端的存储请求的其它此类计算机。备选地或此外,存储前端120中的一些或所有可包含用于服务于此类存储请求的服务器、工作站或其它此类装置。
客户端110a、…、110n可通过各种各样的共享通信通路和/或专用通信通路中的任何通路以各种方式耦合到存储前端120。作为说明而非限制,客户端110a、…、110n中的一些或所有可通过各种各样的网络组合中的任何网络耦合到存储前端120,所述网络包含但不限于专用存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、虚拟LAN(VLAN)、因特网等中的一个或多个网络。
存储后端140可包含一个或多个存储组件——例如由说明性存储组件150a、…、150x表示——其各包含一个或多个存储装置。存储后端140根据不同实施例可包含一个或多个附加或备选存储组件的各种各样组合中的任何组合。存储组件150a、…、150x可以各种方式包含硬盘驱动器、固态驱动器、光学驱动器等中的一个或多个。在实施例中,存储组件150a、…、150x中的一些或所有包含相应计算机平台。例如,存储后端140可包含多个连网的计算机平台——或备选地只有单个计算机平台——其与实现存储前端120的计算机平台截然不同。在实施例中,存储前端120和存储后端140的至少一个存储装置驻留在同一计算机平台上。
存储后端140可经由一个或多个通信信道(包括存储系统100的硬件接口130)耦合到存储前端120。硬件接口130例如可包含一个或多个连网元件——例如包含交换机、路由器、桥、集线器等中的一个或多个——以支持实现存储前端120的计算机平台与包含存储组件150a、…、150x中的一些或所有的计算机平台之间的网络通信。备选地或此外,硬件接口130可包含一个或多个计算机总线——例如以便将实现存储前端120的计算机平台的处理器、芯片集和/或其它元件与包含存储组件150a、…、150x中的一些或所有的相同计算机平台的其它元件耦合。作为说明而非限制,硬件接口130可包含外围组件互连(PIC)Express总线、符合串行高级技术附件(SATA)的总线、小计算机系统接口(SCSI)总线等中的一个或多个。
在实施例中,存储后端140的至少一个存储组件包含本地计算由那个存储组件存储的数据的数据指纹的逻辑。作为说明而非限制,存储组件150a可包含数据指纹生成器155——例如硬件、固件和/或软件逻辑——以生成表示存储前端120已经指示要由存储组件150a存储的对应数据的哈希值或其它指纹值。
存储组件150a可进一步包含向存储前端120提供标识由数据指纹生成器155计算的数据指纹的信息的逻辑。基于来自存储组件150a的信息,去重引擎122或类似去重逻辑可以确定要存储在存储组件150a中的数据是否是已经存储在存储后端140中的其它信息的副本。
例如,存储前端120可包含或者以其它方式可以访问指纹信息贮存库124以存储表示当前存储在存储前端140中的相应数据的指纹值。去重引擎122可搜索指纹信息贮存库124以确定与已经存储在存储后端140中的数据关联的数据指纹是否匹配与存储在存储组件150a中的数据对应的数据指纹。在指纹信息贮存库124中发现匹配的数据指纹的情况下,去重引擎122可发起一个或多个补救措施以阻止或校正副本数据在存储组件150a中的存储。
图2图示了根据实施例用于实现数据去重的系统200的元件。系统200可包含能够经由主机系统220与存储后端240交换命令和数据的一个或多个客户端210a、…、210n。主机系统220可包括耦合到芯片集265的主机中央处理单元(CPU)270。主机CPU 270例如可包括可从加利福尼亚州圣克拉拉的英特尔公司得到的Intel® Pentium® IV微处理器的功能性。备选地,主机CPU 270可包括来自各种制造商的各种各样其它类型微处理器中的任何类型微处理器,而不脱离此实施例。
芯片集265例如可包括可将主机CPU 270、存储器275和用户接口系统285彼此耦合并耦合到总线系统225的主机桥/集线器系统。芯片集265还可包含可将主机桥/总线系统耦合到总线系统225的I/O桥/集线器系统(未示出)。芯片集265可包括集成电路芯片,例如包含图形存储器和/或I/O控制器集线器芯片集组件,尽管也可使用或者备选地可使用其它集成电路芯片,而不脱离此实施例。用户接口系统285例如可包括键盘、定点装置和显示系统,其可允许人类用户向系统200输入命令并监视系统200的操作。
总线系统225可包括符合可从PCI特别兴趣小组波特兰或美国得到的2002年7月22日公布的外围组件互连(PCI) Express™基本规范修订1.0的总线(本文下面称为“PCI Express™总线”)。备选地或此外,总线系统225可包括符合可从上述PCI特别兴趣小组波特兰或美国得到的2000年7月24日的PCI-X规范修订1.0a的总线(本文下面称为“PCI-X总线”)。而且,总线系统225备选地或此外可包括各种其它类型和配置的总线系统之一,而不脱离此实施例。主机系统220的主机CPU 270、系统存储器275、芯片集265、总线系统225和一个或多个其它组件可包含在单个电路板诸如例如系统母板中。
在实施例中,存储前端功能性可由主机CPU 270的一个或多个过程和/或芯片集265的一个或多个组件实现。此类前端功能性可包含去重逻辑,诸如去重引擎122的去重逻辑——例如,至少部分由在主机CPU 270上执行的过程实现的此类去重逻辑。在实施例中,主机系统220的存储前端功能性包含控制存储装置250a、…、250x中的一个或多个的操作的硬件和/或软件。作为说明而非限制,此类前端功能性可包含存储控制器280——例如I/O控制器集线器、平台控制器集线器或用于控制对存储后端240的访问(例如数据读访问和/或数据写访问)的其它此类机制。在实施例中,存储控制器280是芯片集265的组件。
存储后端240例如可包括一个或多个存储装置——由说明性存储装置250a、…、250x表示——其例如可包含一个或多个硬盘驱动器(HDD)、固态驱动器(SDD)等各种各样组合中的任何组合。存储装置250a、…、250x中的一些或所有例如可由主机系统220的存储控制器280独立访问,和/或可以能够由存储控制器280例如使用盘标识(盘ID)信息进行标识。备选地或此外,存储装置250a、…、250x中的一些或所有可在其上将数据存储在所选单元,例如逻辑块地址(LBA)、扇区、集群和/或它们的任何组合中。存储后端240可包含在一个或多个相应外壳中,所述外壳例如可与装入主机系统220母板以及其中包含的组件的外壳分开。备选地或此外,存储后端240中的一些或所有可被集成到主机系统220中。
存储控制器280可耦合到存储后端240并控制其操作。在实施例中,存储控制器280经由一个或多个相应通信链路、计算机平台总线线路等耦合到一个或多个存储装置250a、…、250x。存储控制器280可以各种方式与存储装置250a、…、250x中的一些或所有交换数据和/或命令——例如使用各种各样不同通信协议(例如光纤信道(FC)、串行高级技术附件(SATA)和/或串行附连的小计算机系统接口(SAS)协议)中的一个或多个协议。备选地,存储控制器280可使用其它和/或附加通信协议以各种方式与存储装置250a、…、250x中的一些或所有交换数据和/或命令,而不脱离此实施例。
根据实施例,如果存储控制器280使用FC协议与存储后端240交换数据和/或命令,则它可与在ANSI标准光纤信道(FC)物理和信令接口-3X3.303:1998规范中描述的接口/协议符合或兼容。如果存储控制器280使用SATA协议与存储后端240交换数据和/或命令,则它可与在2011年7月由串行ATA国际组织(SATA-IO)发布的串行ATA修订3.1规范或各种以后或早前的SATA规范中描述的协议符合或兼容。如果存储控制器280使用SAS协议与存储后端240交换数据和/或命令,则它可与在由美国国家标准协会在2002年10月19日公布的国际信息技术标准委员会的美国国家标准(INCITS) T10技术委员会、项目T10/1562-D、修订2b的工作草案“Information Technology—Serial Attached SCSI (SAS)”(下文称为“SAS标准”)和/或SAS标准的以后公布的版本中描述的协议符合或兼容。
存储控制器280可被耦合以经由总线系统225与系统存储器275、主机CPU
270、用户接口系统285、芯片集265和/或一个或多个客户端210a、…、210n交换数据和/或命令。在总线系统225包括PCI Express™总线或PCI-X总线的情况下,存储控制器280例如可经由与扩展插槽或类似接口(未示出)兼容或符合的PCI Express™或PCI-X总线例如耦合到总线系统225。
取决于如何格式化一个或多个存储装置250a、…、250x中每个存储装置的介质,存储控制器280可控制读和/或写操作以访问采用逻辑块地址(LBA)格式的盘数据,即,其中从装置中在预先选择的逻辑块单元中读取数据。当然,访问存储在一个或多个存储装置250a、…、250x中的盘数据——例如经由网络通信链路和/或计算机平台总线——的其它操作一般在本文中可想到,并且例如可包括按集群、按扇区、按字节和/或数据的其它单位度量访问数据。
存储在一个或多个存储装置250a、…、250x中的数据例如可根据文件分配表(FAT)格式、新技术文件系统(NTFS)格式和/或其它盘格式中的一个或多个进行格式化。如果存储装置使用FAT格式进行格式化,则此类格式可与在由微软公司在2000年12月6日公布的修订1.3“Microsoft Extensible Firmware Initiative FAT 32 File System
Specification”中描述的格式化标准符合或兼容。如果存储在大容量存储装置中的数据使用NTFS格式进行格式化,则此类格式可与诸如可公开得到的NTFS格式化标准符合或兼容。
在实施例中,存储后端240中的至少一个存储装置包含本地计算要由那个存储组件存储的数据的数据指纹的逻辑。作为说明而非限制,存储组件250a可包含数据指纹生成器255——例如硬件、固件和/或软件逻辑——以生成表示在主机系统220内实现的存储前端已经指示要由存储组件250a存储的对应数据的哈希值或其它指纹值。指纹值可由数据指纹生成器255提供——例如以便存储前端确定可执行的去重操作。
一个或多个客户端210a、…、210n可各包含适当的网络通信电路(未示出)以请求主机系统220的存储前端功能性以便访问存储后端240。此类访问例如可经由网络215,包含局域网(LAN)、广域网(WAN)、存储区域网络(SAN)或其它无线和/或有线网络环境中的一个或多个。
图3是根据实施例用于提供数据去重的存储前端300的元件的功能表示。存储前端300例如可包含存储前端120的其中一些或所有特征。在实施例中,存储前端300的功能元件以各种方式由包含主机系统220的一些或所有特征的计算机平台的逻辑——例如硬件、固件和/或软件实现。
存储前端300可包含客户端接口310,以交换与客户端(诸如客户端210a、…、210n之一)的通信——例如以接收对于存储前端300访问存储后端(未示出)的客户端请求。客户端接口310可包含各种各样有线和/或无线网络接口逻辑中的任何逻辑——例如诸如网络接口260的逻辑——以便与此类客户端通信。在实施例中,存储前端300可包含耦合到客户端接口310的一个或多个协议引擎320,一个或多个协议引擎320以各种方式支持与相应客户端通信的一个或多个协议。作为说明而非限制,一个或多个协议引擎320可支持网络文件系统(NFS)通信、TCP/IP通信、代表性状态转移(ReST)通信、因特网小计算机系统接口(iSCSI)通信、基于以太网的通信(诸如经由通过以太网的光纤信道(FCoE)的通信)和/或用于在客户端与存储前端300之间交换数据存储请求的各种各样其它协议中的任何协议。一个或多个协议引擎320例如可包含是芯片集265的一部分或在芯片集265的控制下操作的专用硬件。
存储后端例如可包含直接或间接耦合到存储前端300的存储接口340的一个或多个存储组件。备选地或此外,存储后端可包含驻留在实现存储前端300的计算机平台上的一个或多个存储组件。客户端接口310和存储接口340备选地可合并到同一物理接口硬件中,尽管某些实施例不限于这方面。
在实施例中,存储前端300提供支持客户端将数据存储在存储后端中的请求的一个或多个管理服务。例如,存储前端300可包含存储管理器330——例如包含硬件(诸如存储控制器280中的硬件)和/或软件逻辑(诸如在主机CPU
270中执行的一个或多个过程)——以保存当前存储在存储后端中的数据的哈希信息贮存库370。哈希信息贮存库370例如可位于主机系统220的存储器275或某个非易失性存储装置(未示出)中。在备选实施例中,哈希贮存库370可由存储前端300管理(但仍然在存储前端300外部)——例如其中哈希贮存库370被存储在(例如分布在)存储后端的一个或多个存储装置中。存储管理器330可保存各种各样附加或备选数据指纹贮存库中的任何贮存库以便引用以确定执行去重操作。尽管某些实施例的特征在本文中依据哈希值的存储、比较等进行讨论,但本领域技术人员将认识到,此类讨论可被扩展成各种各样附加或备选类型的数据指纹信息中的任何类型信息。
在实施例中,哈希信息贮存库370包含一个或多个条目,每个条目对应于存储在后端存储中的相应数据。在给定时间点,哈希信息贮存库370中的一个或多个条目各可存储表示对应于那个条目的所存储数据的哈希的相应值。哈希信息贮存库370可由存储管理器330基于向存储后端写数据和/或从存储后端删除数据而偶尔更新。作为说明而非限制,存储管理器330可基于对应于从存储后端删除那个条目的数据而从哈希信息贮存库370中移除条目。备选地或此外,存储管理器330可基于修改对应于那个条目的数据的写操作而修订存储在哈希信息贮存库370的条目中的哈希值。
在实施例中,存储前端300包含耦合到(或备选地包含在)存储管理器330的去重引擎350。去重引擎350例如可由在主机CPU
270中执行的过程实现。在实施例中,去重引擎350评估被考虑用于将来有效存储在存储后端中的数据的哈希值——例如存储在存储前端的哈希寄存器360中的哈希值。例如,如果尚未确定正讨论的数据是否是当前存储在存储后端中的任何其它数据的副本,则数据可考虑将来有效存储在存储后端中。在正讨论的数据被确定为是副本数据的情况下,可阻止正讨论的数据被写入存储后端。备选地,在其存储在存储后端之后,此类数据可从存储后端删除和/或可以其它方式无效。
在实施例中,响应于考虑的数据由存储前端发送以便暂时存储在存储后端,由存储后端提供所存储的哈希值——例如用于存储在哈希寄存器360中。此类存储可被视为暂时的,例如,至少目前为止此类数据服从于由去重引擎350进行评估的结果可被移除或者以其它方式无效。评估哈希寄存器360中的哈希值例如可包含:去重引擎350搜索哈希信息贮存库370以确定是否其中的任何哈希值匹配存储在哈希寄存器360中的值。
在实施例中,存储管理器330可基于存储前端300确定此类数据不是与已经在哈希信息贮存库370中的任何条目对应的数据的副本而允许或者以其它方式实现数据在存储后端中的将来有效存储——并且可进一步向哈希信息贮存库370添加对应条目。根据各种实施例,存储管理器330可提供各种各样附加或备选存储管理服务中的任何服务。例如,存储管理器330可以确定如何将数据分布在存储后端的一个或多个存储组件上。作为说明而非限制,存储管理器330可选择数据应该驻留在存储后端哪里——例如包含:基于具体驱动器的当前利用级别、基于盘的年龄等选取那个驱动器来存储数据的拷贝。附加地或备选地,存储管理器330可提供认证和/或授权服务——例如以确定准许客户端访问存储后端。某些实施例不限于任何服务,除了去重相关的服务,这些服务可进一步由存储管理器330提供。
图4图示了根据实施例用于提供支持数据去重的信息的存储装置400的功能元件。存储装置400例如可包含存储装置250a的一些或所有特征。在实施例中,存储装置400向具有存储前端300的一些或所有特征的存储前端提供数据签名信息。
存储装置400可包含计算机平台或驻留在计算机平台中,该计算机平台与实现存储前端功能性的另一计算机平台截然不同。存储装置400例如可包含用于从远离存储装置400的平台接收一个或多个数据存储命令的接口410,平台作为存储前端操作。在此类实施例中,接口410可包含各种各样有线和/或无线网络接口中的任何网络接口。
备选地,存储装置400可以是实现用于一个或多个存储后端组件(包含存储装置400)的存储前端功能性的计算机平台中的组件——例如其中存储装置400与实现此类存储前端功能性的计算机平台的逻辑截然不同。在此类实施例中,接口410备选地可包含连接器硬件以将存储装置400直接或间接耦合到平台的一个或多个其它组件——例如包含I/O控制器、处理器、平台控制器集线器等中的一个或多个的组件。作为说明而非限制,接口410可包含外围组件互连(PIC)总线连接器、外围组件互连Express (PICe)总线连接器、SATA连接器、小计算机系统接口(SCSI)连接器等。在实施例中,接口410包含发送和/或接收一个或多个命令的电路逻辑,所述命令与非易失性存储器主机控制器接口(NVMHCI)规范(诸如由NVMHCI工作组在2008年4月发布的NVMHCI规范1.0)符合或以其它方式兼容,尽管某些实施例不限于这方面。
存储装置400可经由接口410从存储前端接收写命令——例如NVMHCI写命令——其规定将数据存储在存储装置400的存储介质440中。存储介质440例如可包含其中一个或多个固态介质——例如NAND闪存、NOR闪存等——磁阻随机存取存储器、纳米线存储器、相变存储器、磁硬盘介质、光盘介质等。在实施例中,存储装置400包含协议逻辑420——例如根据协议评估写命令和/或根据协议确定一个或多个操作以对写命令起作用或以其它方式对写命令响应的电路逻辑。
存储器装置400可进一步包含访问逻辑430以实现对存储介质440的写——例如写命令所指导的。作为说明而非限制,访问逻辑430可包含或者以其它方式控制操作(例如选择、锁存、驱动等)地址信号线和/或数据信号线(未示出)用于向存储介质440中的一个或多个位置写数据的逻辑。在实施例中,访问逻辑430包含独立于存储装置400的主机处理器访问存储介质440的直接存储器访问逻辑——例如在存储器装置400包含具有此类主机处理器的计算机平台的实施例中。
访问逻辑430可包含或耦合到哈希生成逻辑450——例如执行计算以生成表示被写入存储介质440的数据的哈希值的电路逻辑。
哈希生成逻辑450可包含状态机或其它硬件以接收正写入或要写入存储介质440的数据的版本作为输入。基于输入数据,哈希生成逻辑可执行各种各样计算中的任何计算以生成哈希值——例如MD5消息摘要算法哈希值、安全哈希算法SHA-265哈希值或各种各样附加或备选哈希值中的任何哈希值——表示正写入存储介质440的对应数据。哈希生成逻辑450可存储此类哈希值——例如在哈希寄存器460中——以便随后发送到存储前端。在实施例中,可存储多个哈希值——例如每个存储到多个哈希寄存器中的不同哈希寄存器——每个哈希值用于要写入的数据的相应部分。例如,由8512字节块组成的4KB大块数据写可能要求在不同的相应哈希槽中存储8个哈希值,其中8个哈希值一起用于表示大块数据。
在实施例中,协议逻辑420可在对存储前端的应答通信中包含用于标识存储在哈希寄存器460中的哈希值的信息。例如,从存储前端经由接口410接收的写命令根据通信协议可导致来自存储后端的写响应消息以确认接收到消息和/或完成了请求的数据写。作为说明而非限制,eNVMHCI通过在由驱动器或发送命令的其它代理直接可见的寄存器的命令状况字段中写状况信息来响应于命令诸如写命令的完成。各种实施例将此类协议扩展成规定在成功写的上下文中返回一个或多个哈希值——例如在命令状况的通信内或附加于命令状况的通信。例如,协议逻辑420可规定此类协议的扩展——例如凭此根据该协议存储在哈希寄存器460中的值被添加到常规写响应通信,或者以其它方式连同常规写响应通信一起发送。
备选地,存储在哈希寄存器460中的哈希值可在暂时数据写之后执行的独立通信中提供。在实施例中,物理或虚拟装置——例如由虚拟逻辑单元号标识——可将块号以及它们关联的哈希值存储在日志中。在此类实例中,存储前端可请求读以从日志中拉取(pull)哈希信息——例如以懒惰方式捕获大量哈希值。
图5图示了根据实施例用于提供数据去重的方法500的选择元素。方法500可在存储前端执行,该存储前端例如包含存储前端300的一些或所有特征。
方法500可包含在510从存储前端向存储后端的存储装置发送写命令。此类存储装置例如可包含存储装置400的一些或所有特征。存储前端例如可包含在计算机平台的处理器和那个计算机平台的芯片集的一个或多个组件上执行的至少一个过程。在此类实例中,存储后端可经由硬件接口——例如网络接口、I/O总线等——耦合到处理器和芯片集。例如,存储装置可以是包含实现存储前端功能性的处理器和芯片集的相同计算机平台的组件。备选地,存储装置可驻留在第二计算机平台内,它与计算机平台连网实现此类存储前端功能性。
存储前端响应于存储客户端请求访问存储后端或者以其它方式代表存储客户端请求访问存储后端而将在510发送的写命令提供给存储装置。在实施例中,写命令规定将第一数据写入存储装置。例如,写命令可包含正讨论的数据,或者以其它方式与之一起发送。
在实施例中,存储装置存储是写命令的对象的数据——例如其中数据存储最初至少在暂时的基础上。例如,在最初存储在存储装置中之后,数据可考虑将来有效存储在存储后端。此类将来有效存储例如可取决于关于暂时存储的数据是否是已经存储在存储后端中的任何其它数据的副本的确定。
支持此类评估,存储装置可响应于接收到写命令而本地计算第一数据的数据指纹——例如哈希。而且,存储装置可进一步发送传递所计算的数据指纹的消息。
方法500可包含在520从存储装置接收第一数据的数据指纹。响应于接收到数据指纹,方法500可在530确定是否要执行去重操作。例如,根据通信协议,可在存储前端与存储装置之间交换写命令。在此类实例中,在520,存储前端可在对应于写命令的响应消息中接收数据指纹——例如其中通信协议需要写命令的此类响应消息。存储前端的一个或多个附加操作可基于接收到此类响应消息来执行。例如,在存储装置暂时存储数据之前,存储前端可存储数据的拷贝——例如在存储前端的高速缓存中。存储前端可进一步响应于响应消息而从高速缓存中冲掉第一数据的此类拷贝。在530,存储前端可生成传递此类确定结果的信号。
在实施例中,在530确定是否要执行去重操作包含访问包含一个或多个数据指纹的贮存库。一个或多个指纹例如可各表示当前存储在存储后端中的相应数据。搜索贮存库以确定是否贮存库的一个或多个数据指纹中的任何数据指纹匹配第一数据的数据指纹。搜索贮存库例如可包含评估表示存储在存储后端的某个第二存储装置中的数据的数据指纹。数据指纹与某个其它数据指纹之间的匹配可指示暂时存储在存储装置中的数据与当前存储在存储后端中的某个其它信息一样——例如其中其它数据存储在接收到写命令的存储装置中,或备选地,存储在存储后端的某个其它存储装置中。
如果第一数据由存储前端确定为是存储在存储后端中的其它数据的副本,则存储前端可进一步发信号通知要执行去重操作。例如,正讨论的数据可暂时存储在存储装置中的第一存储器位置。在此类实例中,去重操作例如可包含从第一存储器位置删除数据。备选地或此外,去重操作可包含删除指示数据存储在第一存储器位置的元数据。基于在530的确定的去重操作例如可包含用于移除此类副本数据或者以其它方式使此类副本数据无效的各种各样常规技术中的任何技术。
在实施例中,方法500可进一步包含:确定在530确定要执行的任何去重的时间和/或方式。例如,可响应于在530的确定立即执行去重。备选地,去重通知可被排队以便以懒惰方式管理此类去重。在实施例中,执行去重可响应于存储前端上的一些载荷落在某个阈限以下——例如指示处理循环可用于投资于去重数据擦除的载荷下降。
方法500的方法的一个优点例如是,它允许计算哈希所需的处理载荷随着存储系统中的盘或其它存储装置的数量而容易地缩放。在传统存储系统中,单个节点计算所有哈希,因为数据被移动了,这可降低性能。相比之下,某些实施例以各种方式允许哈希计算被推送(即分布)到一个或多个远程驱动器,由此散布那个处理载荷,并使其更容易缩放到更大存储系统。
图6图示了根据实施例用于提供支持数据去重的信息的方法600的选择元素。方法600可在存储前端的存储装置处执行——例如存储装置包含存储装置400的一些或所有特征。在实施例中,方法600表示结合实现方法500的存储前端的存储装置的操作。
方法600可包含在610接收从存储前端发送的写命令,该写命令——例如NVMHCI写命令——规定将数据写入存储装置。在实施例中,写命令规定将第一数据写入存储装置。例如,写命令可包含是写命令的对象的数据,或者以其它方式与之一起发送。
在实施例中,存储装置存储是写命令的对象的数据——例如其中数据存储最初至少在暂时的基础上。例如,在最初存储在存储装置中之后,数据可考虑将来有效存储在存储后端。此类将来有效存储例如可取决于关于暂时存储的数据是否是已经存储在存储后端中的任何其它数据的副本的确定。
支持此类评估,方法600可包含在620存储装置计算第一数据的数据指纹,该计算响应于接收到写命令。而且,在630,存储装置可进一步向存储前端传递本地计算的数据指纹。例如,响应于NVMHCI写命令而传递本地计算的数据指纹,尽管某些实施例不限于这方面。
响应于数据指纹的传递,存储前端的去重引擎可确定是否要执行去重操作。例如,此类确定例如可对应于在530的确定。在实施例中,存储装置可从存储前端接收指导存储后端执行数据的去重操作的消息。例如,正讨论的数据可暂时存储在存储装置中的第一存储器位置。在此类实例中,去重操作例如可包含存储装置从第一存储器位置删除数据。备选地或此外,去重操作可包含存储装置删除或者以其它方式改变指示数据有效存储在第一存储器位置的元数据。备选地或此外,存储在存储装置外部的元数据可被存储前端删除或者以其它方式改变——此类改变/删除反映数据未有效存储在第一存储器位置。
图7是可实现本发明实施例的示例计算机系统700的一个实施例的图示。在一个实施例中,计算机系统700包含计算机平台705,计算机平台705例如可包含存储组件150a的一些或所有特征。计算机平台705例如可包含存储后端和/或存储组件(例如存储装置),存储组件是此类存储后端的组件。
计算机平台705可包含耦合到总线725的处理器710,处理器710具有一个或多个处理器核712。存储器718、存储装置740、非易失性存储装置720、显示器控制器730、输入/输出控制器750以及调制解调器或网络接口745也耦合到总线725。计算机平台705可通过网络接口745对接到一个或多个外部装置。此接口745可包含调制解调器、集成服务数字网(ISDN)调制解调器、电缆调制解调器、数字订户线(DSL)调制解调器、T-1线路接口、T-3线路接口、以太网接口、WiFi接口、WiMax接口、蓝牙接口、或耦合到另一计算机的各种各样其它此类接口中的任何接口。在说明性示例中,可建立网络连接760以便计算机平台705经由网络接口745接收和/或传送与计算机网络765(诸如例如局域网(LAN)、广域网(WAN)或因特网)的通信。在一个实施例中,计算机网络765进一步耦合到实现存储前端功能性的远程计算机(未示出)。
处理器710可包含常规微处理器的特征,包含但不限于英特尔公司x86、Pentium®或Itanium®处理器系列微处理器、摩托罗拉系列微处理器等的特征。存储器718可包含但不限于动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、Rambus动态随机存取存储器(RDRAM)等。显示器控制器730可以用常规方式控制显示器735,显示器735在一个实施例中可以是阴极射线管(CRT)、液晶显示器(LCD)、有源矩阵显示器等。耦合到输入/输出控制器750的输入/输出装置755可以是键盘、盘驱动器、打印机、扫描仪以及其它输入和输出装置,包含鼠标、跟踪球、触控板、游戏杆或其它定点装置。
计算机平台705还可包含其上可存储固件和/或数据的非易失性存储装置720。非易失性存储装置包含但不限于只读存储器(ROM)、闪存、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等。
存储装置740在一个实施例中可以是磁硬盘、光盘或用于大量数据的另一形式的存储装置。在计算机平台705中执行软件期间,一些数据可通过直接存储器存取过程被写到存储器718中。例如,存储器管理单元(MMU) 715可便于在存储器718与外设(未示出)之间的DMA交换。备选地,存储器718可被直接耦合到总线725——例如其中MMU 715被集成到处理器710的非核中——尽管各种实施例不限于这方面。认识到,软件和/或数据可驻留在存储装置740、存储器718、非易失性存储装置720中,或者可经由调制解调器或网络接口745传送或接收。
计算机平台705可从存储前端(未示出)接收写命令,写命令规定将数据写入计算机平台705的存储介质。此类数据例如可被存储到存储器718、存储装置740等。计算机平台705的数据指纹生成器逻辑(未示出)例如可驻留在存储器管理单元715、I/O控制器750或计算机平台705的其它此类组件中。作为说明而非限制,存储器管理单元715或I/O控制器750的DMA引擎(未示出)或其它此类硬件可包含或可以使用用于自动生成已写入、正写入或要写入计算机平台705的数据的哈希或其它数据指纹的逻辑。
本文描述了用于管理数据存储的技术和架构。在以上描述中,为了说明的目的,阐述了大量特定细节以便提供对某些实施例的透彻理解。然而,本领域技术人员要明白,在没有这些特定细节的情况下也可实行某些实施例。在其它实例中,以框图形式示出了结构和装置以免使描述模糊不清。
在说明书中提及“一个实施例”或“实施例”意味着,结合该实施例描述的具体特征、结构或特性包含在本发明的至少一个实施例中。在说明书中各处出现的短语“在一个实施例中”不一定全都是指同一实施例。
具体实施方式的一些部分依据对计算机存储器内的数据位的操作的算法和符号表示而呈现。这些算法描述和表示是计算领域的技术人员用于最有效地将它们工作的实质传达给本领域技术人员所用的手段。算法在此并且一般地被视为导致期望结果的步骤的自我一致的序列。这些步骤是需要物理量的物理操纵的那些步骤。通常,尽管不是必需的,这些量采取能够被存储、转移、组合、比较以及以其它方式操控的电信号或磁信号的形式。已经证明方便的是,有时主要是出于习惯使用的原因,把这些信号称为位、值、元素、符号、字符、项、数字等。
然而,应该牢记的是,所有这些以及类似的术语都与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非特别声明,否则根据本文讨论显然的是,认识到在说明书通篇利用诸如“处理”或“计算”或“计算”或“确定”或“显示”等术语的讨论是指计算机系统或类似电子计算装置的动作和过程,其将计算机系统的寄存器和存储器内表示为物理(电子)量的数据操控并转变成在计算机系统存储器或寄存器或其它此类信息存储、传送或显示装置内类似地表示为物理量的其它数据。
某些实施例还涉及用于执行本文操作的设备。此设备可特别为了所需目的构造,或者它可包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储介质上,诸如但不限于任何类型盘(包含软盘、光盘、CD-ROM以及磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)诸如动态RAM (DRAM)、EPROM、EEPROM、磁卡或光卡、或适用于存储电指令并耦合到计算机系统总线的任何类型介质。
本文呈现的算法和显示器不是固有地涉及任何具体计算机或其它设备。各种通用系统可与根据本文教导的程序一起使用,或者它可以证明是便于构造更专业化设备以执行所需的方法步骤。各种各样这些系统的所需结构根据本文描述将显而易见。此外,某些实施例未参考任何具体编程语言进行描述。将认识到,各种各样的编程语言都可用于实现本文所描述的此类实施例的教导。
除了本文所描述的之外,还可对所公开实施例及其实现进行各种修改,而不脱离它们的范围。因此,本文的图示和示例应该以说明性而非约束性意义来解释。本发明的范围应该仅参考随附权利要求进行量度。
Claims (20)
1. 一种在第一计算机平台提供存储前端的方法,所述方法包括:
从所述存储前端向存储后端的存储装置发送写命令,所述写命令规定将第一数据写入所述存储装置;
从所述存储装置接收所述第一数据的数据指纹,所述数据指纹由所述存储装置响应于所述写命令而计算;
响应于接收所述数据指纹而确定是否要执行去重操作;以及
如果所述第一数据被确定为是存储在所述存储后端中的其它数据的副本,则发信号通知要执行所述去重操作。
2. 如权利要求1所述的方法,其中所述存储前端包含如下至少一项:
在所述第一计算机平台的处理器上执行的过程;以及
所述第一计算机平台的芯片集的一个或多个组件;
其中所述存储后端经由硬件接口耦合到所述处理器和所述芯片集。
3. 如权利要求2所述的方法,其中耦合到所述第一计算机平台的第二计算机平台包含所述存储装置。
4. 如权利要求1所述的方法,其中确定是否要执行所述去重操作包含:
访问包含一个或多个数据指纹的贮存库,每个数据指纹表示存储在所述存储后端中的相应数据;以及
搜索所述贮存库以确定是否所述贮存库的所述一个或多个数据指纹中的任何数据指纹匹配所述第一数据的所述数据指纹。
5. 如权利要求1所述的方法,其中所述存储装置是所述第一计算机平台的组件,所述方法进一步包括:
在所述存储装置接收所述写命令;
响应于接收所述写命令而通过所述存储装置计算所述数据指纹;以及
通过所述存储装置向所述存储前端发送所述数据指纹。
6. 如权利要求5所述的方法,其中所述写命令根据通信协议交换,其中发送所述数据指纹包含所述存储装置向所述存储前端发送对应于所述写命令的响应消息,所述响应消息根据所述通信协议。
7. 如权利要求1所述的方法,其中所述去重操作包含如下一项:
从第一存储器位置删除所述第一数据;以及
删除指示所述第一数据存储在所述第一存储器位置的元数据。
8. 一种用于提供存储前端的计算机系统,所述计算机系统包括:
所述存储前端的协议引擎,所述协议引擎向存储后端的存储装置发送写命令,所述写命令规定将第一数据写入所述存储装置;
所述存储前端的去重引擎,所述去重引擎从所述存储装置接收所述第一数据的数据指纹,所述存储装置响应于所述写命令而计算所述数据指纹,所述去重引擎进一步基于接收的数据指纹确定是否要执行去重操作,其中如果所述第一数据被确定为是存储在所述存储后端中的其它数据的副本,则所述去重引擎进一步发信号通知要执行所述去重操作。
9. 如权利要求8所述的计算机系统,其中所述存储前端包含如下至少一项:
在计算机系统的处理器上执行的过程;以及
所述计算机系统的芯片集的一个或多个组件;
其中所述存储后端经由硬件接口耦合到所述处理器和所述芯片集。
10. 如权利要求9所述的计算机系统,其中所述计算机系统耦合到包含所述存储装置的计算机平台。
11. 如权利要求8所述的计算机系统,其中所述去重引擎确定是否要执行所述去重操作包含:
所述去重引擎访问包含一个或多个数据指纹的贮存库,每个数据指纹表示存储在所述存储后端中的相应数据;以及
所述去重引擎搜索所述贮存库以确定是否所述贮存库的所述一个或多个数据指纹中的任何数据指纹匹配所述第一数据的所述数据指纹。
12. 如权利要求8所述的计算机系统,进一步包括所述存储装置,其中所述存储装置包含:
协议逻辑,用于接收所述写命令;以及
耦合到所述协议逻辑的指纹生成器逻辑,所述指纹生成器逻辑响应于所述写命令而计算所述第一数据的所述数据指纹;
其中所述协议逻辑进一步向所述存储前端发送所述数据指纹。
13. 如权利要求8所述的计算机系统,其中所述去重操作包含如下之一:
从所述第一存储器位置删除所述第一数据;以及
删除指示所述第一数据存储在所述第一存储器位置的元数据。
14. 如权利要求8所述的计算机系统,其中所述写命令根据通信协议交换,其中传递所述数据指纹包含所述存储装置向所述存储前端发送对应于所述写命令的响应消息,所述响应消息根据所述通信协议。
15. 一种存储装置,包含:
协议逻辑,用于接收从存储前端发送的写命令,所述写命令规定将第一数据写入所述存储装置;以及
耦合到所述协议逻辑的指纹生成器逻辑,所述指纹生成器逻辑响应于接收的写命令而计算所述第一数据的数据指纹;
其中所述协议逻辑进一步向所述存储前端传递所述数据指纹;并且
其中响应于所述数据指纹的传递,所述存储前端的去重引擎确定是否要执行去重操作。
16. 如权利要求15所述的存储装置,其中所述存储前端包含如下至少一项:
在第一计算机平台的处理器上执行的过程;以及
第一计算机平台的芯片集的一个或多个组件;
其中所述存储后端经由硬件接口耦合到所述处理器和所述芯片集。
17. 如权利要求16所述的存储装置,其中所述存储装置要作为所述第一计算机平台的组件操作。
18. 如权利要求13所述的存储装置,其中所述存储装置要作为耦合到所述第一计算机平台的第二计算机平台的组件操作。
19. 如权利要求15所述的存储装置,其中所述去重引擎在所述第一数据存储在所述存储装置中的第一存储器位置之后确定要执行所述去重操作,并且其中所述去重操作包含如下之一:
从所述第一存储器位置删除所述第一数据;以及
删除指示所述第一数据存储在所述第一存储器位置的元数据。
20. 如权利要求15所述的存储装置,其中所述写命令根据通信协议交换,其中传递所述数据指纹包含所述存储装置向所述存储前端发送对应于所述写命令的响应消息,所述响应消息根据所述通信协议。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/061246 WO2013074106A1 (en) | 2011-11-17 | 2011-11-17 | Method, apparatus and system for data deduplication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104040516A true CN104040516A (zh) | 2014-09-10 |
CN104040516B CN104040516B (zh) | 2017-03-15 |
Family
ID=48430009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180076259.9A Active CN104040516B (zh) | 2011-11-17 | 2011-11-17 | 用于数据去重的方法、设备和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130311434A1 (zh) |
CN (1) | CN104040516B (zh) |
WO (1) | WO2013074106A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391915A (zh) * | 2014-11-19 | 2015-03-04 | 湖南国科微电子有限公司 | 一种数据重删方法 |
Families Citing this family (224)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105324765B (zh) | 2013-05-16 | 2019-11-08 | 慧与发展有限责任合伙企业 | 选择用于去重复数据的存储区 |
EP2997497B1 (en) * | 2013-05-16 | 2021-10-27 | Hewlett Packard Enterprise Development LP | Selecting a store for deduplicated data |
US11630585B1 (en) | 2016-08-25 | 2023-04-18 | Pure Storage, Inc. | Processing evacuation events in a storage array that includes a plurality of storage devices |
US9619167B2 (en) | 2013-11-27 | 2017-04-11 | Intel Corporation | System and method for computing message digests |
KR102140792B1 (ko) * | 2013-12-24 | 2020-08-03 | 삼성전자주식회사 | 데이터 중복 제거를 수행할 수 있는 데이터 저장 장치의 동작 방법들 |
US9461973B2 (en) | 2014-03-19 | 2016-10-04 | Bluefin Payment Systems, LLC | Systems and methods for decryption as a service |
DK3518570T3 (da) | 2014-03-19 | 2021-01-18 | Bluefin Payment Sys Llc | Systemer og fremgangsmåder til fremstilling af fingeraftryk til krypteringsindretninger |
US11256798B2 (en) | 2014-03-19 | 2022-02-22 | Bluefin Payment Systems Llc | Systems and methods for decryption as a service |
US9716755B2 (en) | 2015-05-26 | 2017-07-25 | Pure Storage, Inc. | Providing cloud storage array services by a local storage array in a data center |
US11102298B1 (en) | 2015-05-26 | 2021-08-24 | Pure Storage, Inc. | Locally providing cloud storage services for fleet management |
US9594678B1 (en) | 2015-05-27 | 2017-03-14 | Pure Storage, Inc. | Preventing duplicate entries of identical data in a storage device |
US10021170B2 (en) | 2015-05-29 | 2018-07-10 | Pure Storage, Inc. | Managing a storage array using client-side services |
US9300660B1 (en) | 2015-05-29 | 2016-03-29 | Pure Storage, Inc. | Providing authorization and authentication in a cloud for a user of a storage array |
US11503031B1 (en) | 2015-05-29 | 2022-11-15 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US9444822B1 (en) | 2015-05-29 | 2016-09-13 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US9588691B2 (en) | 2015-06-10 | 2017-03-07 | Pure Storage, Inc. | Dynamically managing control information in a storage device |
US9594512B1 (en) | 2015-06-19 | 2017-03-14 | Pure Storage, Inc. | Attributing consumed storage capacity among entities storing data in a storage array |
US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US10296236B2 (en) | 2015-07-01 | 2019-05-21 | Pure Storage, Inc. | Offloading device management responsibilities from a storage device in an array of storage devices |
US9892071B2 (en) | 2015-08-03 | 2018-02-13 | Pure Storage, Inc. | Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array |
US9851762B1 (en) | 2015-08-06 | 2017-12-26 | Pure Storage, Inc. | Compliant printed circuit board (‘PCB’) within an enclosure |
US11294588B1 (en) | 2015-08-24 | 2022-04-05 | Pure Storage, Inc. | Placing data within a storage device |
US10198194B2 (en) | 2015-08-24 | 2019-02-05 | Pure Storage, Inc. | Placing data within a storage device of a flash array |
US11625181B1 (en) | 2015-08-24 | 2023-04-11 | Pure Storage, Inc. | Data tiering using snapshots |
US10706070B2 (en) * | 2015-09-09 | 2020-07-07 | Rubrik, Inc. | Consistent deduplicated snapshot generation for a distributed database using optimistic deduplication |
US10514978B1 (en) | 2015-10-23 | 2019-12-24 | Pure Storage, Inc. | Automatic deployment of corrective measures for storage arrays |
US11360844B1 (en) | 2015-10-23 | 2022-06-14 | Pure Storage, Inc. | Recovery of a container storage provider |
US9384082B1 (en) | 2015-10-23 | 2016-07-05 | Pure Storage, Inc. | Proactively providing corrective measures for storage arrays |
US10284232B2 (en) | 2015-10-28 | 2019-05-07 | Pure Storage, Inc. | Dynamic error processing in a storage device |
US10374868B2 (en) | 2015-10-29 | 2019-08-06 | Pure Storage, Inc. | Distributed command processing in a flash storage system |
US9740414B2 (en) | 2015-10-29 | 2017-08-22 | Pure Storage, Inc. | Optimizing copy operations |
US10353777B2 (en) | 2015-10-30 | 2019-07-16 | Pure Storage, Inc. | Ensuring crash-safe forward progress of a system configuration update |
US9760479B2 (en) | 2015-12-02 | 2017-09-12 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US11762764B1 (en) | 2015-12-02 | 2023-09-19 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US10326836B2 (en) | 2015-12-08 | 2019-06-18 | Pure Storage, Inc. | Partially replicating a snapshot between storage systems |
US11616834B2 (en) | 2015-12-08 | 2023-03-28 | Pure Storage, Inc. | Efficient replication of a dataset to the cloud |
US10162835B2 (en) | 2015-12-15 | 2018-12-25 | Pure Storage, Inc. | Proactive management of a plurality of storage arrays in a multi-array system |
US11347697B1 (en) | 2015-12-15 | 2022-05-31 | Pure Storage, Inc. | Proactively optimizing a storage system |
US10346043B2 (en) | 2015-12-28 | 2019-07-09 | Pure Storage, Inc. | Adaptive computing for data compression |
US9886314B2 (en) | 2016-01-28 | 2018-02-06 | Pure Storage, Inc. | Placing workloads in a multi-array system |
US10572460B2 (en) | 2016-02-11 | 2020-02-25 | Pure Storage, Inc. | Compressing data in dependence upon characteristics of a storage system |
US9760297B2 (en) | 2016-02-12 | 2017-09-12 | Pure Storage, Inc. | Managing input/output (‘I/O’) queues in a data storage system |
US11995315B2 (en) | 2016-03-16 | 2024-05-28 | Pure Storage, Inc. | Converting data formats in a storage system |
US9959043B2 (en) | 2016-03-16 | 2018-05-01 | Pure Storage, Inc. | Performing a non-disruptive upgrade of data in a storage system |
US9841921B2 (en) | 2016-04-27 | 2017-12-12 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices |
US11112990B1 (en) | 2016-04-27 | 2021-09-07 | Pure Storage, Inc. | Managing storage device evacuation |
US11809727B1 (en) | 2016-04-27 | 2023-11-07 | Pure Storage, Inc. | Predicting failures in a storage system that includes a plurality of storage devices |
US9811264B1 (en) | 2016-04-28 | 2017-11-07 | Pure Storage, Inc. | Deploying client-specific applications in a storage system utilizing redundant system resources |
US10303390B1 (en) | 2016-05-02 | 2019-05-28 | Pure Storage, Inc. | Resolving fingerprint collisions in flash storage system |
US11231858B2 (en) | 2016-05-19 | 2022-01-25 | Pure Storage, Inc. | Dynamically configuring a storage system to facilitate independent scaling of resources |
US9507532B1 (en) | 2016-05-20 | 2016-11-29 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices |
US11016940B2 (en) * | 2016-06-02 | 2021-05-25 | International Business Machines Corporation | Techniques for improving deduplication efficiency in a storage system with multiple storage nodes |
US10691567B2 (en) | 2016-06-03 | 2020-06-23 | Pure Storage, Inc. | Dynamically forming a failure domain in a storage system that includes a plurality of blades |
US10452310B1 (en) | 2016-07-13 | 2019-10-22 | Pure Storage, Inc. | Validating cabling for storage component admission to a storage array |
US11706895B2 (en) | 2016-07-19 | 2023-07-18 | Pure Storage, Inc. | Independent scaling of compute resources and storage resources in a storage system |
US10459652B2 (en) | 2016-07-27 | 2019-10-29 | Pure Storage, Inc. | Evacuating blades in a storage array that includes a plurality of blades |
US10474363B1 (en) | 2016-07-29 | 2019-11-12 | Pure Storage, Inc. | Space reporting in a storage system |
US11886922B2 (en) | 2016-09-07 | 2024-01-30 | Pure Storage, Inc. | Scheduling input/output operations for a storage system |
US10671439B1 (en) | 2016-09-07 | 2020-06-02 | Pure Storage, Inc. | Workload planning with quality-of-service (‘QOS’) integration |
US11531577B1 (en) | 2016-09-07 | 2022-12-20 | Pure Storage, Inc. | Temporarily limiting access to a storage device |
US11960348B2 (en) | 2016-09-07 | 2024-04-16 | Pure Storage, Inc. | Cloud-based monitoring of hardware components in a fleet of storage systems |
US10908966B1 (en) | 2016-09-07 | 2021-02-02 | Pure Storage, Inc. | Adapting target service times in a storage system |
US10235229B1 (en) | 2016-09-07 | 2019-03-19 | Pure Storage, Inc. | Rehabilitating storage devices in a storage array that includes a plurality of storage devices |
US11481261B1 (en) | 2016-09-07 | 2022-10-25 | Pure Storage, Inc. | Preventing extended latency in a storage system |
US10146585B2 (en) | 2016-09-07 | 2018-12-04 | Pure Storage, Inc. | Ensuring the fair utilization of system resources using workload based, time-independent scheduling |
US10331588B2 (en) | 2016-09-07 | 2019-06-25 | Pure Storage, Inc. | Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling |
US10007459B2 (en) | 2016-10-20 | 2018-06-26 | Pure Storage, Inc. | Performance tuning in a storage system that includes one or more storage devices |
US11379132B1 (en) | 2016-10-20 | 2022-07-05 | Pure Storage, Inc. | Correlating medical sensor data |
US11620075B2 (en) | 2016-11-22 | 2023-04-04 | Pure Storage, Inc. | Providing application aware storage |
US10162566B2 (en) | 2016-11-22 | 2018-12-25 | Pure Storage, Inc. | Accumulating application-level statistics in a storage system |
US10198205B1 (en) | 2016-12-19 | 2019-02-05 | Pure Storage, Inc. | Dynamically adjusting a number of storage devices utilized to simultaneously service write operations |
US11461273B1 (en) | 2016-12-20 | 2022-10-04 | Pure Storage, Inc. | Modifying storage distribution in a storage system that includes one or more storage devices |
US10489307B2 (en) | 2017-01-05 | 2019-11-26 | Pure Storage, Inc. | Periodically re-encrypting user data stored on a storage device |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11340800B1 (en) | 2017-01-19 | 2022-05-24 | Pure Storage, Inc. | Content masking in a storage system |
US10503700B1 (en) | 2017-01-19 | 2019-12-10 | Pure Storage, Inc. | On-demand content filtering of snapshots within a storage system |
US11163624B2 (en) | 2017-01-27 | 2021-11-02 | Pure Storage, Inc. | Dynamically adjusting an amount of log data generated for a storage system |
US11941279B2 (en) | 2017-03-10 | 2024-03-26 | Pure Storage, Inc. | Data path virtualization |
US10454810B1 (en) | 2017-03-10 | 2019-10-22 | Pure Storage, Inc. | Managing host definitions across a plurality of storage systems |
US11169727B1 (en) | 2017-03-10 | 2021-11-09 | Pure Storage, Inc. | Synchronous replication between storage systems with virtualized storage |
US11803453B1 (en) | 2017-03-10 | 2023-10-31 | Pure Storage, Inc. | Using host connectivity states to avoid queuing I/O requests |
US11442825B2 (en) | 2017-03-10 | 2022-09-13 | Pure Storage, Inc. | Establishing a synchronous replication relationship between two or more storage systems |
US10503427B2 (en) | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
US11675520B2 (en) | 2017-03-10 | 2023-06-13 | Pure Storage, Inc. | Application replication among storage systems synchronously replicating a dataset |
US10521344B1 (en) | 2017-03-10 | 2019-12-31 | Pure Storage, Inc. | Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems |
US11089105B1 (en) | 2017-12-14 | 2021-08-10 | Pure Storage, Inc. | Synchronously replicating datasets in cloud-based storage systems |
US10853057B1 (en) * | 2017-03-29 | 2020-12-01 | Amazon Technologies, Inc. | Software library versioning with caching |
US10459664B1 (en) | 2017-04-10 | 2019-10-29 | Pure Storage, Inc. | Virtualized copy-by-reference |
US9910618B1 (en) | 2017-04-10 | 2018-03-06 | Pure Storage, Inc. | Migrating applications executing on a storage system |
US11868629B1 (en) | 2017-05-05 | 2024-01-09 | Pure Storage, Inc. | Storage system sizing service |
US11711350B2 (en) | 2017-06-02 | 2023-07-25 | Bluefin Payment Systems Llc | Systems and processes for vaultless tokenization and encryption |
JP7093531B2 (ja) | 2017-06-02 | 2022-06-30 | ブルーフィン ペイメント システムズ エルエルシー | ウェブブラウザを介して決済端末を管理するシステム及び方法 |
WO2018231350A1 (en) | 2017-06-12 | 2018-12-20 | Pure Storage, Inc. | Accessible fast durable storage integrated into a bulk storage device |
US10976962B2 (en) | 2018-03-15 | 2021-04-13 | Pure Storage, Inc. | Servicing I/O operations in a cloud-based storage system |
US11340939B1 (en) | 2017-06-12 | 2022-05-24 | Pure Storage, Inc. | Application-aware analytics for storage systems |
US10853148B1 (en) | 2017-06-12 | 2020-12-01 | Pure Storage, Inc. | Migrating workloads between a plurality of execution environments |
US10417092B2 (en) | 2017-09-07 | 2019-09-17 | Pure Storage, Inc. | Incremental RAID stripe update parity calculation |
US11016824B1 (en) | 2017-06-12 | 2021-05-25 | Pure Storage, Inc. | Event identification with out-of-order reporting in a cloud-based environment |
US11210133B1 (en) | 2017-06-12 | 2021-12-28 | Pure Storage, Inc. | Workload mobility between disparate execution environments |
US11989429B1 (en) | 2017-06-12 | 2024-05-21 | Pure Storage, Inc. | Recommending changes to a storage system |
US10613791B2 (en) | 2017-06-12 | 2020-04-07 | Pure Storage, Inc. | Portable snapshot replication between storage systems |
US11422731B1 (en) | 2017-06-12 | 2022-08-23 | Pure Storage, Inc. | Metadata-based replication of a dataset |
US11609718B1 (en) | 2017-06-12 | 2023-03-21 | Pure Storage, Inc. | Identifying valid data after a storage system recovery |
US11592991B2 (en) | 2017-09-07 | 2023-02-28 | Pure Storage, Inc. | Converting raid data between persistent storage types |
US11442669B1 (en) | 2018-03-15 | 2022-09-13 | Pure Storage, Inc. | Orchestrating a virtual storage system |
US10552090B2 (en) | 2017-09-07 | 2020-02-04 | Pure Storage, Inc. | Solid state drives with multiple types of addressable memory |
US11593036B2 (en) | 2017-06-12 | 2023-02-28 | Pure Storage, Inc. | Staging data within a unified storage element |
US10884636B1 (en) | 2017-06-12 | 2021-01-05 | Pure Storage, Inc. | Presenting workload performance in a storage system |
US11561714B1 (en) | 2017-07-05 | 2023-01-24 | Pure Storage, Inc. | Storage efficiency driven migration |
US11477280B1 (en) | 2017-07-26 | 2022-10-18 | Pure Storage, Inc. | Integrating cloud storage services |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US11455168B1 (en) | 2017-10-19 | 2022-09-27 | Pure Storage, Inc. | Batch building for deep learning training workloads |
US10360214B2 (en) | 2017-10-19 | 2019-07-23 | Pure Storage, Inc. | Ensuring reproducibility in an artificial intelligence infrastructure |
US10671435B1 (en) | 2017-10-19 | 2020-06-02 | Pure Storage, Inc. | Data transformation caching in an artificial intelligence infrastructure |
US11494692B1 (en) | 2018-03-26 | 2022-11-08 | Pure Storage, Inc. | Hyperscale artificial intelligence and machine learning infrastructure |
US11861423B1 (en) | 2017-10-19 | 2024-01-02 | Pure Storage, Inc. | Accelerating artificial intelligence (‘AI’) workflows |
US10452444B1 (en) | 2017-10-19 | 2019-10-22 | Pure Storage, Inc. | Storage system with compute resources and shared storage resources |
US10671494B1 (en) | 2017-11-01 | 2020-06-02 | Pure Storage, Inc. | Consistent selection of replicated datasets during storage system recovery |
US10509581B1 (en) | 2017-11-01 | 2019-12-17 | Pure Storage, Inc. | Maintaining write consistency in a multi-threaded storage system |
US10484174B1 (en) | 2017-11-01 | 2019-11-19 | Pure Storage, Inc. | Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices |
US10467107B1 (en) | 2017-11-01 | 2019-11-05 | Pure Storage, Inc. | Maintaining metadata resiliency among storage device failures |
US10817392B1 (en) | 2017-11-01 | 2020-10-27 | Pure Storage, Inc. | Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices |
US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
US10936238B2 (en) | 2017-11-28 | 2021-03-02 | Pure Storage, Inc. | Hybrid data tiering |
US10990282B1 (en) | 2017-11-28 | 2021-04-27 | Pure Storage, Inc. | Hybrid data tiering with cloud storage |
US10795598B1 (en) | 2017-12-07 | 2020-10-06 | Pure Storage, Inc. | Volume migration for storage systems synchronously replicating a dataset |
US11036677B1 (en) | 2017-12-14 | 2021-06-15 | Pure Storage, Inc. | Replicated data integrity |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10992533B1 (en) | 2018-01-30 | 2021-04-27 | Pure Storage, Inc. | Policy based path management |
US10942650B1 (en) | 2018-03-05 | 2021-03-09 | Pure Storage, Inc. | Reporting capacity utilization in a storage system |
US11150834B1 (en) | 2018-03-05 | 2021-10-19 | Pure Storage, Inc. | Determining storage consumption in a storage system |
US11861170B2 (en) | 2018-03-05 | 2024-01-02 | Pure Storage, Inc. | Sizing resources for a replication target |
US11972134B2 (en) | 2018-03-05 | 2024-04-30 | Pure Storage, Inc. | Resource utilization using normalized input/output (‘I/O’) operations |
US10521151B1 (en) | 2018-03-05 | 2019-12-31 | Pure Storage, Inc. | Determining effective space utilization in a storage system |
US10296258B1 (en) | 2018-03-09 | 2019-05-21 | Pure Storage, Inc. | Offloading data storage to a decentralized storage network |
US11048590B1 (en) | 2018-03-15 | 2021-06-29 | Pure Storage, Inc. | Data consistency during recovery in a cloud-based storage system |
US10917471B1 (en) | 2018-03-15 | 2021-02-09 | Pure Storage, Inc. | Active membership in a cloud-based storage system |
US11210009B1 (en) | 2018-03-15 | 2021-12-28 | Pure Storage, Inc. | Staging data in a cloud-based storage system |
US10924548B1 (en) | 2018-03-15 | 2021-02-16 | Pure Storage, Inc. | Symmetric storage using a cloud-based storage system |
US11288138B1 (en) | 2018-03-15 | 2022-03-29 | Pure Storage, Inc. | Recovery from a system fault in a cloud-based storage system |
US11171950B1 (en) | 2018-03-21 | 2021-11-09 | Pure Storage, Inc. | Secure cloud-based storage system management |
US11095706B1 (en) | 2018-03-21 | 2021-08-17 | Pure Storage, Inc. | Secure cloud-based storage system management |
US10838833B1 (en) | 2018-03-26 | 2020-11-17 | Pure Storage, Inc. | Providing for high availability in a data analytics pipeline without replicas |
US11436344B1 (en) | 2018-04-24 | 2022-09-06 | Pure Storage, Inc. | Secure encryption in deduplication cluster |
US11392553B1 (en) | 2018-04-24 | 2022-07-19 | Pure Storage, Inc. | Remote data management |
US11954220B2 (en) | 2018-05-21 | 2024-04-09 | Pure Storage, Inc. | Data protection for container storage |
US20190354628A1 (en) | 2018-05-21 | 2019-11-21 | Pure Storage, Inc. | Asynchronous replication of synchronously replicated data |
US11675503B1 (en) | 2018-05-21 | 2023-06-13 | Pure Storage, Inc. | Role-based data access |
US11455409B2 (en) | 2018-05-21 | 2022-09-27 | Pure Storage, Inc. | Storage layer data obfuscation |
US10871922B2 (en) | 2018-05-22 | 2020-12-22 | Pure Storage, Inc. | Integrated storage management between storage systems and container orchestrators |
US11403000B1 (en) | 2018-07-20 | 2022-08-02 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
US11416298B1 (en) | 2018-07-20 | 2022-08-16 | Pure Storage, Inc. | Providing application-specific storage by a storage system |
US11632360B1 (en) | 2018-07-24 | 2023-04-18 | Pure Storage, Inc. | Remote access to a storage device |
US11146564B1 (en) | 2018-07-24 | 2021-10-12 | Pure Storage, Inc. | Login authentication in a cloud storage platform |
US11954238B1 (en) | 2018-07-24 | 2024-04-09 | Pure Storage, Inc. | Role-based access control for a storage system |
US11860820B1 (en) | 2018-09-11 | 2024-01-02 | Pure Storage, Inc. | Processing data through a storage system in a data pipeline |
US10671302B1 (en) | 2018-10-26 | 2020-06-02 | Pure Storage, Inc. | Applying a rate limit across a plurality of storage systems |
US11379254B1 (en) | 2018-11-18 | 2022-07-05 | Pure Storage, Inc. | Dynamic configuration of a cloud-based storage system |
US11526405B1 (en) | 2018-11-18 | 2022-12-13 | Pure Storage, Inc. | Cloud-based disaster recovery |
US10963189B1 (en) | 2018-11-18 | 2021-03-30 | Pure Storage, Inc. | Coalescing write operations in a cloud-based storage system |
US11340837B1 (en) | 2018-11-18 | 2022-05-24 | Pure Storage, Inc. | Storage system management via a remote console |
US11650749B1 (en) | 2018-12-17 | 2023-05-16 | Pure Storage, Inc. | Controlling access to sensitive data in a shared dataset |
US11003369B1 (en) | 2019-01-14 | 2021-05-11 | Pure Storage, Inc. | Performing a tune-up procedure on a storage device during a boot process |
US11042452B1 (en) | 2019-03-20 | 2021-06-22 | Pure Storage, Inc. | Storage system data recovery using data recovery as a service |
US11221778B1 (en) | 2019-04-02 | 2022-01-11 | Pure Storage, Inc. | Preparing data for deduplication |
US11068162B1 (en) | 2019-04-09 | 2021-07-20 | Pure Storage, Inc. | Storage management in a cloud data store |
EP4018618A4 (en) | 2019-05-13 | 2023-10-25 | Bluefin Payment Systems, LLC | VAULTLESS TOKENIZATION AND ENCRYPTION SYSTEMS AND METHODS |
US11327676B1 (en) | 2019-07-18 | 2022-05-10 | Pure Storage, Inc. | Predictive data streaming in a virtual storage system |
US11126364B2 (en) | 2019-07-18 | 2021-09-21 | Pure Storage, Inc. | Virtual storage system architecture |
US11392555B2 (en) | 2019-05-15 | 2022-07-19 | Pure Storage, Inc. | Cloud-based file services |
US11853266B2 (en) | 2019-05-15 | 2023-12-26 | Pure Storage, Inc. | Providing a file system in a cloud environment |
US12001355B1 (en) | 2019-05-24 | 2024-06-04 | Pure Storage, Inc. | Chunked memory efficient storage data transfers |
US11093139B1 (en) | 2019-07-18 | 2021-08-17 | Pure Storage, Inc. | Durably storing data within a virtual storage system |
US11487715B1 (en) | 2019-07-18 | 2022-11-01 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
US11526408B2 (en) | 2019-07-18 | 2022-12-13 | Pure Storage, Inc. | Data recovery in a virtual storage system |
US11797197B1 (en) | 2019-07-18 | 2023-10-24 | Pure Storage, Inc. | Dynamic scaling of a virtual storage system |
US11861221B1 (en) | 2019-07-18 | 2024-01-02 | Pure Storage, Inc. | Providing scalable and reliable container-based storage services |
US11086553B1 (en) | 2019-08-28 | 2021-08-10 | Pure Storage, Inc. | Tiering duplicated objects in a cloud-based object store |
US11693713B1 (en) | 2019-09-04 | 2023-07-04 | Pure Storage, Inc. | Self-tuning clusters for resilient microservices |
US11797569B2 (en) | 2019-09-13 | 2023-10-24 | Pure Storage, Inc. | Configurable data replication |
US11360689B1 (en) | 2019-09-13 | 2022-06-14 | Pure Storage, Inc. | Cloning a tracking copy of replica data |
US11573864B1 (en) | 2019-09-16 | 2023-02-07 | Pure Storage, Inc. | Automating database management in a storage system |
US11669386B1 (en) | 2019-10-08 | 2023-06-06 | Pure Storage, Inc. | Managing an application's resource stack |
CN112783417A (zh) * | 2019-11-01 | 2021-05-11 | 华为技术有限公司 | 数据缩减的方法、装置、计算设备和存储介质 |
US20210173945A1 (en) | 2019-12-06 | 2021-06-10 | Pure Storage, Inc. | Replicating data to a storage system that has an inferred trust relationship with a client |
US11733901B1 (en) | 2020-01-13 | 2023-08-22 | Pure Storage, Inc. | Providing persistent storage to transient cloud computing services |
US11720497B1 (en) | 2020-01-13 | 2023-08-08 | Pure Storage, Inc. | Inferred nonsequential prefetch based on data access patterns |
US11709636B1 (en) | 2020-01-13 | 2023-07-25 | Pure Storage, Inc. | Non-sequential readahead for deep learning training |
US11637896B1 (en) | 2020-02-25 | 2023-04-25 | Pure Storage, Inc. | Migrating applications to a cloud-computing environment |
US11868622B2 (en) | 2020-02-25 | 2024-01-09 | Pure Storage, Inc. | Application recovery across storage systems |
US11321006B1 (en) | 2020-03-25 | 2022-05-03 | Pure Storage, Inc. | Data loss prevention during transitions from a replication source |
US11630598B1 (en) | 2020-04-06 | 2023-04-18 | Pure Storage, Inc. | Scheduling data replication operations |
US11301152B1 (en) | 2020-04-06 | 2022-04-12 | Pure Storage, Inc. | Intelligently moving data between storage systems |
US11494267B2 (en) | 2020-04-14 | 2022-11-08 | Pure Storage, Inc. | Continuous value data redundancy |
US11921670B1 (en) | 2020-04-20 | 2024-03-05 | Pure Storage, Inc. | Multivariate data backup retention policies |
US11431488B1 (en) | 2020-06-08 | 2022-08-30 | Pure Storage, Inc. | Protecting local key generation using a remote key management service |
CN113778320A (zh) * | 2020-06-09 | 2021-12-10 | 华为技术有限公司 | 网卡以及网卡处理数据的方法 |
US11349917B2 (en) | 2020-07-23 | 2022-05-31 | Pure Storage, Inc. | Replication handling among distinct networks |
US11442652B1 (en) | 2020-07-23 | 2022-09-13 | Pure Storage, Inc. | Replication handling during storage system transportation |
US11934875B2 (en) | 2020-12-09 | 2024-03-19 | Dell Products L.P. | Method and system for maintaining composed systems |
US11809912B2 (en) | 2020-12-09 | 2023-11-07 | Dell Products L.P. | System and method for allocating resources to perform workloads |
US11693703B2 (en) | 2020-12-09 | 2023-07-04 | Dell Products L.P. | Monitoring resource utilization via intercepting bare metal communications between resources |
US11704159B2 (en) | 2020-12-09 | 2023-07-18 | Dell Products L.P. | System and method for unified infrastructure architecture |
US11853782B2 (en) | 2020-12-09 | 2023-12-26 | Dell Products L.P. | Method and system for composing systems using resource sets |
US11928515B2 (en) | 2020-12-09 | 2024-03-12 | Dell Products L.P. | System and method for managing resource allocations in composed systems |
US11809911B2 (en) | 2020-12-09 | 2023-11-07 | Dell Products L.P. | Resuming workload execution in composed information handling system |
US11397545B1 (en) | 2021-01-20 | 2022-07-26 | Pure Storage, Inc. | Emulating persistent reservations in a cloud-based storage system |
US11853285B1 (en) | 2021-01-22 | 2023-12-26 | Pure Storage, Inc. | Blockchain logging of volume-level events in a storage system |
US11768612B2 (en) * | 2021-01-28 | 2023-09-26 | Dell Products L.P. | System and method for distributed deduplication in a composed system |
US11687280B2 (en) | 2021-01-28 | 2023-06-27 | Dell Products L.P. | Method and system for efficient servicing of storage access requests |
US11797341B2 (en) | 2021-01-28 | 2023-10-24 | Dell Products L.P. | System and method for performing remediation action during operation analysis |
US20220365827A1 (en) | 2021-05-12 | 2022-11-17 | Pure Storage, Inc. | Rebalancing In A Fleet Of Storage Systems Using Data Science |
US11816129B2 (en) | 2021-06-22 | 2023-11-14 | Pure Storage, Inc. | Generating datasets using approximate baselines |
US11947697B2 (en) | 2021-07-22 | 2024-04-02 | Dell Products L.P. | Method and system to place resources in a known state to be used in a composed information handling system |
US12008412B2 (en) | 2021-07-28 | 2024-06-11 | Dell Products | Resource selection for complex solutions |
US11928506B2 (en) | 2021-07-28 | 2024-03-12 | Dell Products L.P. | Managing composition service entities with complex networks |
US11893263B2 (en) | 2021-10-29 | 2024-02-06 | Pure Storage, Inc. | Coordinated checkpoints among storage systems implementing checkpoint-based replication |
US11914867B2 (en) | 2021-10-29 | 2024-02-27 | Pure Storage, Inc. | Coordinated snapshots among storage systems implementing a promotion/demotion model |
US11714723B2 (en) | 2021-10-29 | 2023-08-01 | Pure Storage, Inc. | Coordinated snapshots for data stored across distinct storage environments |
US11922052B2 (en) | 2021-12-15 | 2024-03-05 | Pure Storage, Inc. | Managing links between storage objects |
US11847071B2 (en) | 2021-12-30 | 2023-12-19 | Pure Storage, Inc. | Enabling communication between a single-port device and multiple storage system controllers |
US12001300B2 (en) | 2022-01-04 | 2024-06-04 | Pure Storage, Inc. | Assessing protection for storage resources |
US11860780B2 (en) | 2022-01-28 | 2024-01-02 | Pure Storage, Inc. | Storage cache management |
US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230158B1 (en) * | 1996-08-09 | 2001-05-08 | Altavista Company | Method for indexing duplicate records of information of a database |
US20080005141A1 (en) * | 2006-06-29 | 2008-01-03 | Ling Zheng | System and method for retrieving and using block fingerprints for data deduplication |
WO2010019596A2 (en) * | 2008-08-12 | 2010-02-18 | Netapp, Inc. | Scalable deduplication of stored data |
US20100250858A1 (en) * | 2009-03-31 | 2010-09-30 | Symantec Corporation | Systems and Methods for Controlling Initialization of a Fingerprint Cache for Data Deduplication |
WO2011133443A1 (en) * | 2010-04-19 | 2011-10-27 | Greenbytes, Inc. | A method for optimizing the memory usage and performance of data deduplication storage systems |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090319772A1 (en) * | 2008-04-25 | 2009-12-24 | Netapp, Inc. | In-line content based security for data at rest in a network storage system |
US20100199065A1 (en) * | 2009-02-04 | 2010-08-05 | Hitachi, Ltd. | Methods and apparatus for performing efficient data deduplication by metadata grouping |
US8327250B1 (en) * | 2009-04-21 | 2012-12-04 | Network Appliance, Inc. | Data integrity and parity consistency verification |
US8725977B2 (en) * | 2010-02-17 | 2014-05-13 | Seagate Technology Llc | NVMHCI attached hybrid data storage |
-
2011
- 2011-11-17 WO PCT/US2011/061246 patent/WO2013074106A1/en active Application Filing
- 2011-11-17 CN CN201180076259.9A patent/CN104040516B/zh active Active
- 2011-11-17 US US13/997,966 patent/US20130311434A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230158B1 (en) * | 1996-08-09 | 2001-05-08 | Altavista Company | Method for indexing duplicate records of information of a database |
US20080005141A1 (en) * | 2006-06-29 | 2008-01-03 | Ling Zheng | System and method for retrieving and using block fingerprints for data deduplication |
WO2010019596A2 (en) * | 2008-08-12 | 2010-02-18 | Netapp, Inc. | Scalable deduplication of stored data |
US20100250858A1 (en) * | 2009-03-31 | 2010-09-30 | Symantec Corporation | Systems and Methods for Controlling Initialization of a Fingerprint Cache for Data Deduplication |
WO2011133443A1 (en) * | 2010-04-19 | 2011-10-27 | Greenbytes, Inc. | A method for optimizing the memory usage and performance of data deduplication storage systems |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391915A (zh) * | 2014-11-19 | 2015-03-04 | 湖南国科微电子有限公司 | 一种数据重删方法 |
CN104391915B (zh) * | 2014-11-19 | 2016-02-24 | 湖南国科微电子股份有限公司 | 一种数据重删方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104040516B (zh) | 2017-03-15 |
US20130311434A1 (en) | 2013-11-21 |
WO2013074106A1 (en) | 2013-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104040516A (zh) | 用于数据去重的方法、设备和系统 | |
US8165177B2 (en) | System and method for hybrid virtual machine monitor file system operations | |
JP5816198B2 (ja) | 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムおよび方法 | |
CN104699423B (zh) | Linux系统中绑定盘符的方法和装置 | |
US9529805B2 (en) | Systems and methods for providing dynamic file system awareness on storage devices | |
WO2013109640A1 (en) | Techniques for command validation for access to a storage device by a remote client | |
US8782633B1 (en) | Upgrading firmware of a power supply | |
US20110282963A1 (en) | Storage device and method of controlling storage device | |
US9747149B2 (en) | Firmware dump collection from primary system dump device adapter | |
US11436086B2 (en) | Raid storage-device-assisted deferred parity data update system | |
US10565141B1 (en) | Systems and methods for hiding operating system kernel data in system management mode memory to thwart user mode side-channel attacks | |
US20210132860A1 (en) | Management of multiple physical function non-volatile memory devices | |
JP5893028B2 (ja) | キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法 | |
US10097658B2 (en) | Traffic control of packet transfer | |
CN106528226A (zh) | 操作系统的安装方法及装置 | |
US8489686B2 (en) | Method and apparatus allowing scan of data storage device from remote server | |
US10831684B1 (en) | Kernal driver extension system and method | |
US8806153B2 (en) | Partial line cache write injector for direct memory access write | |
US20130166847A1 (en) | Information processing apparatus and cache control method | |
US8688643B1 (en) | Systems and methods for adaptively preferring mirrors for read operations | |
US8732343B1 (en) | Systems and methods for creating dataless storage systems for testing software systems | |
Gouk et al. | Enabling realistic logical device interface and driver for nvm express enabled full system simulations | |
US10019574B2 (en) | Systems and methods for providing dynamic file system awareness on storage devices | |
US11422963B2 (en) | System and method to handle uncompressible data with a compression accelerator | |
US11500683B2 (en) | Workload compliance governor system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |