CN105659222A - 用于计算消息摘要的系统和方法 - Google Patents

用于计算消息摘要的系统和方法 Download PDF

Info

Publication number
CN105659222A
CN105659222A CN201480059000.7A CN201480059000A CN105659222A CN 105659222 A CN105659222 A CN 105659222A CN 201480059000 A CN201480059000 A CN 201480059000A CN 105659222 A CN105659222 A CN 105659222A
Authority
CN
China
Prior art keywords
data
storing device
main frame
message
hardware accelerator
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
CN201480059000.7A
Other languages
English (en)
Other versions
CN105659222B (zh
Inventor
J.B.罕
K.S.格里姆斯鲁德
R.L.库尔森
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN105659222A publication Critical patent/CN105659222A/zh
Application granted granted Critical
Publication of CN105659222B publication Critical patent/CN105659222B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

数据去重复方案利用SSD中的加速硬件以用于代表所附接的主机执行在去重复操作和支持中使用的摘要计算,从而使主机从去重复(去重)处理中的摘要计算的计算负担中解放出来。去重处理典型地涉及消息摘要(MD)和/或散列功能的计算和比较。这样的MD功能通常还用于密码操作,诸如加密和认证。通常,SSD包括用于与SSD的安全性特征相关联的MD功能的板载硬件加速器。然而,硬件加速器还可以被调用以用于计算消息摘要结果并且将结果返回到主机,从而有效地从主机卸载MD计算的负担,类似于外部硬件加速器,但是不重定向数据,因为摘要计算在穿过SSD以用于存储的数据流上执行。

Description

用于计算消息摘要的系统和方法
背景技术
固态盘(SSD)是不包含移动部分的高性能存储设备。SSD比具有常规旋转磁介质的典型硬盘驱动器(HDD)快得多,并且典型地包括管理数据存储的控制器。控制器管理SSD的操作,包括数据存储和访问以及SSD与主机设备之间的通信。数据去重复(de-duplication)是由此标识和交叉引用任何给定数据集合的重复并且仅将唯一数据模式写入到存储介质并且所有重复被捕获为到唯一数据集合(典型地,块)的指针的机制。如果在数据流中存在重复,该技术允许系统大幅减少写入到驱动器的数据量。
附图说明
本发明的前述和其它目的、特征和优点将从如附图中图示的本发明的特定实施例的以下描述显而易见,在附图中,贯穿不同视图,相同的附图标记是指相同的部分。图不一定是按比例的,而是将重点放在说明本发明的原理上。
图1a-1c示出用于消息摘要计算的实现选项的上下文;
图2示出如本文所公开的消息摘要计算的流程图;
图3示出用于如图2中的消息摘要计算的设备的框图;
图4示出用于计算消息摘要的主机侧接口的流程图;以及
图5示出用于计算消息摘要的设备侧接口的流程图。
具体实施方式
数据去重复方案利用(leverage)诸如HDD和SSD之类的大容量存储设备中的加速硬件以用于代表所附接的主机执行去重复操作和支持,从而使主机从用于去重复(去重(de-dupe))处理的散列摘要计算的计算负担中解放出来。去重处理典型地涉及消息摘要(MD)和/或散列功能的计算和比较。MD功能应用于原始数据项以生成较小但唯一的标识符使得对数据的任何改变将改变摘要值,并且通常还用于密码操作,诸如加密和认证。通常,SSD包括用于与SSD的安全性特征相关联的MD功能的板载硬件加速器。然而,硬件加速器还可以被调用以用于计算摘要(MD)结果并且将结果返回到主机,从而有效地从主机卸载MD计算的负担,类似于外部硬件加速器,但是没有重定向数据,因为摘要计算在穿过SSD以供存储的数据流上执行。
本文中的配置部分地基于以下观察:消息摘要和散列操作趋向于是计算密集的,并且可以要求针对大量数据的大量CPU循环。不幸的是,去重操作的常规方案遭受以下缺陷:它们要求针对主机上的MD计算的附加开销,或者要求重定向数据的昂贵硬件引擎的调用,这进一步阻碍性能并且增加成本。然而,被布置在现代SSD中的板载硬件加速器可能并未由SSD的本地安全性操作完全利用,并且SSD硬件加速器的能力可以由主机调用以用于MD计算。因此,本文所公开的配置通过调用SSD板载硬件加速器以用于从主机接收消息摘要请求并且向主机返回散列/摘要结果而大体克服以上描述的缺陷。
所公开的方案提出一种用于通过加速SSD自身上的散列摘要计算的计算密集操作来加速数据去重复(一种数据压缩的形式)的方法。SSD架构和设计由于散列摘要计算的流过(flow-through)、无状态(stateless)性质而提供用于加速硬件中的摘要计算的独特机会。在所提出的方案中,当数据流过SSD时,SSD计算摘要并且将它们发送回到主机以用于去重摘要匹配,提供成本高效、高性能且功率高效的去重支持。作为完整盘加密系统的部分,SSD已经具有可用的本地HW引擎,例如高级加密标准(AES)加密/解密和SHA-256摘要计算。当数据流过它时,SSD已经执行诸如AES加密/解密之类的数据变换。添加SHA摘要的流过计算因而仅招致适度增加的成本,因为在大多数设计中用于摘要计算的HW加速引擎已经在SSD控制器中可用。公开了用于计算摘要的两个不同的数据路径实现配置,包括联机和离线摘要计算方法。这些可以单独或与彼此组合地使用。
本文所公开的配置在SSD中计算摘要。该方案缓解等待时间,因为数据被并行馈送至专用HW加速引擎。该方案还是功率高效的,因为数据不被发送到系统动态随机存取存储器(DRAM)或专用加速HW引擎,这二者倾向于使用更多的功率来完成相同的操作。该方案卸载摘要的主机中央处理单元(CPU)计算并且允许摘要计算跨存储子系统中的数个驱动器而分布。
数据去重复过程涉及标识具有相同内容的数据块。传统地,使用安全散列算法(SHA-256)或其它摘要计算算法来计算消息摘要。通常针对在长度方面可以从512B到4096B或更多变化的每一个数据块计算大小为256位或32字节或更小的摘要。通过比较摘要,人们可以容易地确定一个块是否与另一个块相同。
在常规方案中,如以上所讨论的,数据去重复系统可以完全是基于SW的,其中摘要计算和与之前的摘要的比较在SW中完成,这趋向于使主机CPU负担。还存在可以附接到数据中心中的存储系统的HW加速器,其执行摘要计算和HW中的摘要比较的一些部分,然而该方案典型地添加大量费用。
使用SSD自身上的摘要计算的所提出的方案的系统的示例架构以下在图1c中示出。摘要计算是无状态的、流过计算,其特别良好地适合于在SSD控制器上利用。SSD控制器在数据被写入时监听(snoop)数据并且在HW中计算针对穿过它的每一个块的摘要。当命令完成时,将所计算的摘要返回到主机。该架构在图3中更详细地示出。另外,存在用于增强SSD控制器以使得能够实现流过摘要计算以用于支持所公开的方案的最小附加成本。
图1a-1c示出用于消息摘要计算的实现选项的上下文。参照图1a-1c,图1a示出使用消息摘要的重复检测(去重)的常规方案。在图1a中,主机系统100具有CPU102和存储器(DRAM)104以用于应用执行,并且调用一个或多个SSD120-1…120-4(一般地,120)以用于大容量存储。主机系统100采用去重应用或实用110以用于在主机100上的软件中执行去重计算,并且检查和比较针对存储的请求108以标识重复(典型地,重复扇区(sector)、页面或块)。在图1a中,去重检测由于用于摘要计算和比较所需的资源而减损总体CPU102性能。基于软件的实现方式一般还比基于硬件或固件的方案花费更长时间来执行。
图1b示出具有专用去重硬件外设或卡130的主机100,所述专用去重硬件外设或卡130可从优化的代码111调用以用于将I/O请求108重定向到专用去重硬件130。专用硬件方案是有效的,但是要求附加硬件元件的费用并且还要求重定向I/O请求108以用于硬件130处理。
图1c示出SSD中的本地去重加速器硬件150-1…150-4。参照图1c,与常规方案相对,本文所公开的配置采用在已经由主机100用于I/O请求108的SSD上布置的加速硬件。SSD通常采用专门硬件以用于针对存储在其上的数据的安全性和/或加密操作。调用SSD140-1…140-4上的板载去重加速器硬件150-1…150-4,而不是占用主机CPU循环或者重定向到昂贵的去重硬件130。主机去重指令112调用加速器硬件150以用于生成摘要,并且接收响应于请求154的去重摘要结果152。另外,加速器硬件150在已经穿过SSD的数据流108上操作以用于满足主机I/O请求,因而避免用于去重操作的附加提取和写入。以此方式,去重加速器硬件150由主机100调用以用于去重操作,所述去重操作否则将使主机100负担有用于去重操作的数据的计算(图1a)或重定向(图1b)。
图2示出如本文所公开的消息摘要计算的流程图。参照图1c和2,在步骤200处,如本文所公开的存储数据的方法包括利用用于在从主机100发送以存储在存储设备上的数据上执行压缩和安全性功能的硬件加速器150扩增诸如SSD140之类的存储设备。在示例配置中,硬件加速器150是被布置在存储设备上并且被配置用于加密、解密和安全散列计算的加密引擎,如步骤201处所描绘的。由于硬件加速器150已经被设计到SSD140中以支持基于安全性的加密和认证,不需要招致用于去重使用的附加制造成本。
主机100基于来自主机100的命令或请求154调用硬件加速器150以计算结果152,如步骤202处所示。SSD140向主机100返回所计算的摘要结果152,其中摘要计算是在数据从主机100传递到存储设备以用于存储在存储设备上时应用于数据的无状态的、流过计算,如步骤203处所描绘的。在示例设置中,所计算的结果152是消息摘要,如步骤204处所公开的,以供与其它所存储的块的摘要比较以用于支持去重操作。
图3示出用于如图2中的消息摘要计算的设备的框图。参照图1和3,SSD140包括在SSD本地并且用于SSD中的安全性特征的一个或多个硬件加速器150-11、150-12(一般地,150)。然而,除了这些本地SSD功能之外,联机摘要计算加速硬件150-11通过非侵入式地从主机读取写入流108-1的数据嗅探器或监听线152联机计算消息摘要。联机、非侵入式性质避免将与如以上的图1a和1b中所示的将数据重定向和/或拷贝到缓冲器以用于单独的MD计算一起发生的性能影响。离线摘要计算加速HW150-12在离线模式中执行针对大量或非紧急的来自主机的请求154的类似摘要计算。在两种情况下,MD结果152响应于主机请求154而被返回到主机100,有效地允许主机100调用SSD140的摘要计算能力而不重定向和/或调用单独的专用摘要计算硬件130,因为SSD加速器150具有容易可用的数据流108-1并且可以在对正常SSD吞吐量没有影响或有最小影响的情况下执行摘要计算。
在SSD140中,SSD控制器160包括响应于主机请求154以用于向硬件加速器150-11发送控制信号164的控制逻辑162。将所计算的摘要156发送到递送缓冲器170,典型地SRAM,所述递送缓冲器缓冲正被存储并且从SSD140取回的数据。仲裁器172将监听到的数据引导到存储器介质180-1…180N(一般地,180)、典型地为NAND存储器,以用于与来自主机100的原始存储请求一致的存储,而同时所计算的摘要152被发送回到主机100。
图4示出用于计算消息摘要的主机侧接口的流程图。参照图3和4,主机100调用SSD140以用于执行摘要计算,并且接收基于当经散列的数据穿过SSD以用于存储在SSD140中的存储介质180上时所计算的散列(摘要)的结果152。主机100向存储设备140发送第一数据块以用于存储在存储介质180上,并且标识第二数据块以用于存储在存储设备(SSD)140上,如步骤401处所描绘的。作为响应,主机100将从存储设备140接收第一消息摘要作为对应于第一数据块的响应152,使得所接收的第一消息摘要由存储设备140上的硬件加速器150从数据在存储在存储介质180上期间所经过的数据路径152计算,如步骤402处所描绘的。存储设备140被动监听经由数据路径152、引导到存储设备的数据而不要求用于摘要计算的数据的附加传输,如步骤403处所示。
硬件加速器150通过标识数据块(或其它增量)并且当块在数据路径108上从主机100传递到存储设备140以用于存储时向块应用摘要功能来计算数据的摘要,如步骤404处所示。主机100向存储设备140发送第二数据块,如步骤405处所描绘的。第一和第二数据块不需要是连续的,并且可以被其它存储请求分离。在随后的时间处,主机100从存储设备140接收对应于第二数据块的第二消息摘要,使得第二消息摘要用于与第一消息摘要比较以用于检测数据块的重复,如步骤406处所描绘的。重复数据块的检测(去重处理)可以以任何合适的间隔发生,然而优化和调节参数将指示可能包含重复的之前块的范围,诸如每个文件、每单位时间(即固定间隔,诸如N分钟)或者其它准则。存储设备140响应于用于与其它数据块的比较和重复检测的所计算的消息摘要而向主机100接口返回所计算的结果152,如步骤407处所公开的。
图5示出用于计算消息摘要的设备侧接口的流程图。参照图3和5,在步骤500处,如本文所公开的数据重复检测的方法包括调用板载硬件加速器150,所述板载硬件加速器150被配置用于基于来自主机100的命令或请求154并且应用于经过从主机100到存储设备140上的存储介质180的数据路径108-1的数据的消息摘要计算。在示例配置中,硬件加速器150是被布置在存储设备140上并且被配置用于加密、解密和安全散列计算的加密引擎,如步骤501处描绘的。在步骤502处基于请求154是用于在线还是离线摘要计算而做出决定。如果请求在线摘要计算,则硬件加速器140通过标识数据块并且在块在数据路径152上从主机100传递到存储设备140以用于存储在存储介质180上时向块应用摘要功能来计算数据的摘要,如步骤503处所描绘的。在示例布置中,这涉及要被存储的数据的非侵入式监听,使得当数据在存储设备处在数据路径108-1上从主机接收并且在数据继续不受阻碍地存储时被数据线152分支或被动“嗅探”时,监听发生,如步骤504处所示。因此,硬件加速器140在数据从主机100传递到存储介质180时从所经过的数据路径108-1计算数据的消息摘要,如步骤505处所描绘的。摘要计算是当数据从主机100传递到存储设备140以用于存储在存储设备140的介质组件或存储介质180上时应用于数据的无状态、流过计算,如步骤506处所公开的。该方案避免相关联的等待时间,因为数据并行地馈送到专用HW加速引擎。该方案还是功率高效的,因为数据不被发送到系统DRAM或专用外部加速HW引擎,这二者倾向于使用更多功率来完成相同操作。该方案卸载摘要的主机CPU计算并且允许计算跨存储子系统中的大数目的驱动器(存储设备140)分布。硬件加速器150因而计算消息摘要而不重定向从数据路径108-1到存储介质180的数据,而是仅仅监听或观察数据,如步骤507处所描绘的。数据然后写入(同时或者以任何特定次序)在存储介质180上,如步骤510处所描绘的。
如果调用硬件加速器150以用于离线计算,按照步骤502处的检查,发生离线摘要计算。在联机方法中,当数据流过SSD以用于所执行的每一个写入操作时计算摘要。这典型地是计算摘要的最高效的方法。然而,主机100可能请求针对已经存在于SSD上其它块的摘要,针对其请求154发起离线方法,其中将数据从介质读取到递送缓冲器中,其通常由静态随机存取存储器(SRAM)定义,并且离线引擎150-12在该数据上工作以计算摘要。在计算摘要之后,将它们发送到主机100以用于摘要匹配。离线摘要计算因而包括标识之前写入到存储设备140上的存储介质180的数据块,如步骤508处所描绘的,以及将所标识的块取回到摘要缓冲器中以用于离线计算,如步骤509处所示。在任一情况下,存储设备140将所计算的消息摘要作为响应152返回到主机100,如步骤511处所示。
本领域技术人员将容易领会到,本文所限定的程序和方法可递送至以许多形式的用户处理和再现设备,包括但不限于a)永久存储在诸如ROM设备之类的非可写入存储介质上的信息,b)可变更地存储在诸如软盘、磁带、CD、RAM设备以及其它磁性和光学介质之类的可写入非暂时性存储介质上的信息,或者c)通过通信介质传送至计算机的信息,如在诸如因特网或电话调制解调器线路之类的电子网络中。操作和方法可以以软件可执行对象或者作为编码指令集来实现以供处理器响应于指令而执行。可替换地,本文所公开的操作和方法可以整体或部分地使用硬件组件体现,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、状态机、控制器或其它硬件组件或设备,或者硬件、软件和固件组件的组合。
虽然已经参照其实施例特别地示出和描述了本文所限定的系统和方法,但是本领域技术人员将理解到,可以在其中做出形式和细节上的各种改变而不脱离于随附权利要求所涵盖的本发明的范围。

Claims (22)

1.一种数据重复检测的方法,包括
调用被配置用于基于来自主机的命令并且应用于经过从主机到存储设备上的存储介质的数据路径的数据的消息摘要计算的板载硬件加速器,
当数据从主机传递到存储介质时从所经过的数据路径计算数据的消息摘要;
在存储介质上存储数据;以及
将所计算的消息摘要返回到主机。
2.权利要求1所述的方法,还包括计算消息摘要而不重定向从所述数据路径到存储介质的数据。
3.权利要求1-2中任一项所述的方法,还包括对要被存储的数据的非侵入式监听,当在存储设备处从主机接收到数据时发生监听。
4.权利要求1-3中任一项所述的方法,其中消息摘要计算是当数据从主机传递到存储设备以用于存储在存储设备的介质组件上时应用于数据的无状态、流过计算。
5.权利要求1-4中任一项所述的方法,还包括通过硬件加速器,通过标识数据块并且当块在数据路径上从主机传递至存储设备以用于存储时向块应用摘要功能来计算数据的摘要。
6.权利要求1-5中任一项所述的方法,其中硬件加速器是被布置在存储设备上并且被配置用于加密、解密和安全散列计算的加密引擎。
7.权利要求1-6中任一项所述的方法,还包括标识之前写入到存储设备上的存储介质的数据块;
将所标识的块取回到摘要缓冲器中以用于离线计算;
调用硬件加速器以用于计算所缓冲的数据块的摘要;以及
将所计算的摘要返回到主机。
8.一种存储设备,包括:
到主机设备的接口;
板载硬件加速器,其被配置用于基于来自主机设备的命令并且应用于经过从主机到存储设备上的存储介质的数据路径的数据的消息摘要计算,
所述数据路径响应于硬件加速器以用于当数据从主机传递到存储介质时从所经过的数据路径计算数据的消息摘要;以及
用于存储数据的存储介质,
接口还被配置用于将所计算的消息摘要返回到主机。
9.权利要求8所述的存储设备,其中硬件加速器被配置用于计算消息摘要而不重定向从所述数据路径到存储介质的数据。
10.权利要求8-9中任一项所述的存储设备,其中硬件加速器被配置用于要被存储的数据的非侵入式监听,当在存储设备处从主机接收到数据时发生监听。
11.权利要求8-10中任一项所述的存储设备,其中硬件加速器包括被布置在存储设备上并且被配置用于加密、解密和安全散列计算的一个或多个加密引擎。
12.权利要求8-11中任一项所述的存储设备,其中摘要计算是当数据从主机传递到存储设备以用于存储在存储设备的介质组件上时应用于数据的无状态、流过计算。
13.权利要求8-12中任一项所述的存储设备,其中硬件加速器还包括联机和离线模块,离线模块被配置用于
标识之前被写入到存储设备上的存储介质的数据块;
将所标识的块取回到摘要缓冲器中以用于离线计算;
调用硬件加速器以用于计算所缓冲的数据块的摘要;以及
将所计算的摘要返回到主机。
14.一种存储数据的方法,包括:
利用用于在从主机发送以存储在存储设备上的数据上执行压缩和安全性功能的硬件加速器扩增存储设备;
基于来自主机的命令调用硬件加速器以计算结果;以及
将所计算的结果返回到主机,计算是当数据从主机传递到存储设备以用于存储在存储设备上时应用于数据的无状态、流过计算。
15.权利要求14所述的方法,其中所计算的结果是消息摘要。
16.权利要求14-15中任一项所述的方法,其中硬件加速器是被布置在存储设备上并且被配置用于加密、解密和安全散列计算的加密引擎。
17.一种具有编码在非暂时性计算机可读存储介质上的指令的计算机程序产品,所述指令当由处理器运行时,执行数据重复检测的方法,包括
向存储设备发送第一数据块以用于存储在存储介质上;
标识第二数据块以用于存储在存储设备上;
从存储设备接收对应于第一数据块的第一消息摘要,所接收的第一消息摘要由存储设备上的硬件加速器从数据在存储于存储介质上期间所经过的数据路径计算;
向存储设备发送第二数据块;以及
从存储设备接收对应于第二数据块的第二消息摘要,第二消息摘要用于与第一消息摘要比较以用于检测数据块的重复。
18.权利要求17所述的计算机程序,其中存储设备被动地监听被引导到存储设备的数据而不要求用于摘要计算的数据的附加传输。
19.权利要求18-19中任一项所述的计算机程序,还包括响应于用于与其它数据块的比较和重复检测的所计算的消息摘要而向主机接口返回所计算的结果。
20.权利要求17-19中任一项所述的计算机程序,还包括通过硬件加速器,通过标识数据块并且当块在数据路径上从主机传递至存储设备以用于存储时向块应用摘要功能来计算数据的摘要。
21.一种计算机系统,包括
具有用于存储数据的存储介质的固态存储设备(SSD),
SSD上的板载硬件加速器,其被配置用于基于经过数据路径到存储设备上的存储介质的数据的消息摘要计算,
所述数据路径响应于硬件加速器以用于当数据传递到存储介质时从所经过的数据路径计算数据的消息摘要;以及
用于发送用于消息摘要计算的数据并且用于接收所计算的消息摘要的主机设备,主机设备具有用于显示数据的用户接口。
22.一种计算机系统,包括:
用于向存储设备发送第一数据块以用于存储在存储介质上的装置;
用于标识第二数据块以用于存储在存储设备上的装置;
用于从存储设备接收对应于第一数据块的第一消息摘要的装置,所接收的第一消息摘要由存储设备上的硬件加速器从数据在存储于存储介质上期间所经过的数据路径计算;
用于向存储设备发送第二数据块的装置;以及
用于从存储设备接收对应于第二数据块的第二消息摘要的装置,第二消息摘要用于与第一消息摘要比较以用于检测数据块的重复。
CN201480059000.7A 2013-11-27 2014-10-21 用于计算消息摘要的系统和方法 Active CN105659222B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/091598 2013-11-27
US14/091,598 US9619167B2 (en) 2013-11-27 2013-11-27 System and method for computing message digests
PCT/US2014/061533 WO2015080813A1 (en) 2013-11-27 2014-10-21 System and method for computing message digests

Publications (2)

Publication Number Publication Date
CN105659222A true CN105659222A (zh) 2016-06-08
CN105659222B CN105659222B (zh) 2019-09-17

Family

ID=53183670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480059000.7A Active CN105659222B (zh) 2013-11-27 2014-10-21 用于计算消息摘要的系统和方法

Country Status (6)

Country Link
US (2) US9619167B2 (zh)
EP (1) EP3074881A4 (zh)
KR (2) KR101766240B1 (zh)
CN (1) CN105659222B (zh)
RU (1) RU2643651C2 (zh)
WO (1) WO2015080813A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109302341A (zh) * 2018-10-30 2019-02-01 北京达佳互联信息技术有限公司 即时通信方法、装置、电子设备及存储介质
CN110232034A (zh) * 2018-03-05 2019-09-13 三星电子株式会社 主机系统及其方法和加速模块
CN111506268A (zh) * 2020-04-17 2020-08-07 北京百度网讯科技有限公司 代码文件存储方法、装置和电子设备
CN111738703A (zh) * 2020-05-29 2020-10-02 中国科学院计算技术研究所 一种加速安全散列算法的加速器
US12093258B2 (en) 2020-12-14 2024-09-17 Samsung Electronics Co., Ltd. Storage device adapter to accelerate database temporary table processing

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9933838B2 (en) * 2014-09-24 2018-04-03 Seagate Technology Llc Power management in a storage compute device
KR102396435B1 (ko) 2015-08-11 2022-05-11 삼성전자주식회사 불휘발성 메모리 장치, 버퍼 메모리 및 컨트롤러를 포함하는 스토리지 장치를 포함하는 컴퓨팅 장치의 동작 방법
US10359953B2 (en) 2016-12-16 2019-07-23 Western Digital Technologies, Inc. Method and apparatus for offloading data processing to hybrid storage devices
US10353604B2 (en) 2016-12-27 2019-07-16 Intel Corporation Object transformation in a solid state drive
US11010431B2 (en) 2016-12-30 2021-05-18 Samsung Electronics Co., Ltd. Method and apparatus for supporting machine learning algorithms and data pattern matching in ethernet SSD
US11256431B1 (en) 2017-01-13 2022-02-22 Lightbits Labs Ltd. Storage system having a field programmable gate array
US10581808B2 (en) 2017-03-23 2020-03-03 Microsoft Technology Licensing, Llc Keyed hash contact table
US10496335B2 (en) 2017-06-30 2019-12-03 Intel Corporation Method and apparatus for performing multi-object transformations on a storage device
US10592463B2 (en) * 2018-03-05 2020-03-17 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
CN110390516B (zh) * 2018-04-20 2023-06-06 伊姆西Ip控股有限责任公司 用于数据处理的方法、装置和计算机存储介质
KR102570581B1 (ko) 2018-06-07 2023-08-24 삼성전자 주식회사 스토리지 장치와 재구성 가능 로직 칩을 포함하는 스토리지 장치 세트 및 이를 포함하는 스토리지 시스템
US11112972B2 (en) 2018-12-05 2021-09-07 Samsung Electronics Co., Ltd. System and method for accelerated data processing in SSDs
US20210157512A1 (en) * 2021-02-02 2021-05-27 Intel Corporation Flexible configuration of storage device with translation language set
KR20230035947A (ko) 2021-09-06 2023-03-14 삼성전자주식회사 저장 장치 및 그의 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246741A1 (en) * 2010-04-01 2011-10-06 Oracle International Corporation Data deduplication dictionary system
CN102598020A (zh) * 2009-08-28 2012-07-18 弗森-艾奥公司 用于改进的数据去重的装置、系统及方法
US20130080403A1 (en) * 2010-06-10 2013-03-28 Nec Corporation File storage apparatus, file storage method, and program
WO2013074106A1 (en) * 2011-11-17 2013-05-23 Intel Corporation Method, apparatus and system for data deduplication
US20130218851A1 (en) * 2010-10-19 2013-08-22 Nec Corporation Storage system, data management device, method and program

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5854796A (en) * 1995-05-10 1996-11-29 3Do Company, The Method and apparatus for managing snoop requests using snoop advisory cells
CA2549678A1 (en) 2003-12-15 2005-06-30 Pitney Bowes Inc. Method for mail address block image information encoding, protection and recovery in postal payment applications
NZ556367A (en) 2004-12-08 2010-09-30 Obvious Ltd B Bidirectional data transfer optimization and content control for networks
JP4845674B2 (ja) * 2006-10-26 2011-12-28 キヤノン株式会社 データ処理装置及び方法、通信装置、並びにプログラム
US7941459B1 (en) * 2007-03-29 2011-05-10 Symantec Corporation Selectable use of single-instance store backup methodology in combination with other methods
US7904450B2 (en) 2008-04-25 2011-03-08 Wilson Kelce S Public electronic document dating list
JP5414223B2 (ja) 2008-09-16 2014-02-12 株式会社日立ソリューションズ インターネットバックアップにおける転送データ管理システム
US20100306180A1 (en) * 2009-01-28 2010-12-02 Digitiliti, Inc. File revision management
US9223511B2 (en) * 2011-04-08 2015-12-29 Micron Technology, Inc. Data deduplication
US9417811B2 (en) * 2012-03-07 2016-08-16 International Business Machines Corporation Efficient inline data de-duplication on a storage system
US9697147B2 (en) * 2012-08-06 2017-07-04 Advanced Micro Devices, Inc. Stacked memory device with metadata management
US9021189B2 (en) * 2013-07-24 2015-04-28 NXGN Data, Inc. System and method for performing efficient processing of data stored in a storage node

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102598020A (zh) * 2009-08-28 2012-07-18 弗森-艾奥公司 用于改进的数据去重的装置、系统及方法
US20110246741A1 (en) * 2010-04-01 2011-10-06 Oracle International Corporation Data deduplication dictionary system
US20130080403A1 (en) * 2010-06-10 2013-03-28 Nec Corporation File storage apparatus, file storage method, and program
US20130218851A1 (en) * 2010-10-19 2013-08-22 Nec Corporation Storage system, data management device, method and program
WO2013074106A1 (en) * 2011-11-17 2013-05-23 Intel Corporation Method, apparatus and system for data deduplication

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110232034A (zh) * 2018-03-05 2019-09-13 三星电子株式会社 主机系统及其方法和加速模块
CN110232036A (zh) * 2018-03-05 2019-09-13 三星电子株式会社 主机系统及其方法和加速模块
US11132310B2 (en) 2018-03-05 2021-09-28 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
CN110232036B (zh) * 2018-03-05 2022-08-09 三星电子株式会社 主机系统及其方法和加速模块
US11892957B2 (en) 2018-03-05 2024-02-06 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
CN110232034B (zh) * 2018-03-05 2024-07-30 三星电子株式会社 主机系统及其方法和加速模块
CN109302341A (zh) * 2018-10-30 2019-02-01 北京达佳互联信息技术有限公司 即时通信方法、装置、电子设备及存储介质
CN109302341B (zh) * 2018-10-30 2021-02-02 北京达佳互联信息技术有限公司 即时通信方法、装置、电子设备及存储介质
CN111506268A (zh) * 2020-04-17 2020-08-07 北京百度网讯科技有限公司 代码文件存储方法、装置和电子设备
CN111738703A (zh) * 2020-05-29 2020-10-02 中国科学院计算技术研究所 一种加速安全散列算法的加速器
US12093258B2 (en) 2020-12-14 2024-09-17 Samsung Electronics Co., Ltd. Storage device adapter to accelerate database temporary table processing

Also Published As

Publication number Publication date
KR101766240B1 (ko) 2017-08-23
US20150149695A1 (en) 2015-05-28
RU2643651C2 (ru) 2018-02-02
KR20170092713A (ko) 2017-08-11
CN105659222B (zh) 2019-09-17
RU2016116679A (ru) 2017-11-01
EP3074881A4 (en) 2017-08-16
US20170322746A1 (en) 2017-11-09
WO2015080813A1 (en) 2015-06-04
KR102164223B1 (ko) 2020-10-12
KR20160061412A (ko) 2016-05-31
US10120608B2 (en) 2018-11-06
EP3074881A1 (en) 2016-10-05
US9619167B2 (en) 2017-04-11

Similar Documents

Publication Publication Date Title
CN105659222A (zh) 用于计算消息摘要的系统和方法
CN102073808B (zh) 一种通过sata接口加密存储的方法和加密卡
CN106682521B (zh) 基于驱动层的文件透明加解密系统及方法
US11841984B1 (en) Encrypting data with a unique key
CN111949372B (zh) 一种虚拟机迁移方法、通用处理器及电子设备
CN115473722A (zh) 数据加密方法、装置、电子设备及存储介质
CN111967065A (zh) 一种数据保护方法、处理器及电子设备
US10033732B1 (en) Systems and methods for detecting cloning of security tokens
CN116663071B (zh) 一种企业涉密数据访问管理方法、装置、电子设备及介质
WO2020189133A1 (ja) システム、クライアント装置、データ処理方法、コンピュータプログラム及び記録媒体
US9218296B2 (en) Low-latency, low-overhead hybrid encryption scheme
CN103744765B (zh) 一种虚拟化环境下的磁盘访问请求监控系统及其方法
US10853159B1 (en) Analysis system and method
CN113806792A (zh) 文件云存储方法、装置及可读存储介质和电子设备
CN116094764B (zh) 电力监控系统的电网数据存储方法、装置和设备
CN112579255B (zh) 虚拟机迁移的压缩保护方法、迁入迁出加速器模块和soc芯片
JP3257506B2 (ja) 暗号機構の高信頼化方式
CN117938984B (zh) 一种基于高速加密算法的网络数据传输方法及装置
CN111737704B (zh) 用于数据证明的设备和方法
CN218273385U (zh) 一种硬盘访问控制电路、系统、固态硬盘及存储设备
US20230025962A1 (en) IO Request Flow Performance Analysis System and Method
CN101763485A (zh) 数据保护方法
US20240338683A1 (en) System and Method for Token-based Transaction Processing
Mishra et al. Existing mechanisms for data deduplication
CN118194351A (zh) 日志数据分流加密方法、装置、电子设备及可读存储介质

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