CN101346883A - 用于块模式访问存储的数据压缩的方法和系统 - Google Patents

用于块模式访问存储的数据压缩的方法和系统 Download PDF

Info

Publication number
CN101346883A
CN101346883A CNA2006800491577A CN200680049157A CN101346883A CN 101346883 A CN101346883 A CN 101346883A CN A2006800491577 A CNA2006800491577 A CN A2006800491577A CN 200680049157 A CN200680049157 A CN 200680049157A CN 101346883 A CN101346883 A CN 101346883A
Authority
CN
China
Prior art keywords
clu
data
compression section
compression
bunch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2006800491577A
Other languages
English (en)
Inventor
纳达夫·克戴姆
乔纳森·阿米特
诺赤·阿米特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Storewiz Inc
Original Assignee
Storewiz Inc
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
Priority claimed from US11/258,379 external-priority patent/US7424482B2/en
Application filed by Storewiz Inc filed Critical Storewiz Inc
Publication of CN101346883A publication Critical patent/CN101346883A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/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 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

一种用于产生、读取和写入压缩数据以供块模式访问存储器使用的方法和系统。压缩数据被压缩至多个压缩单元中并且储存在存储逻辑单元(LU)中。一个或更多相应的压缩单元可以在不需要恢复整个存储逻辑单元的情况下被读取和/或更新,同时维持LU的去碎片结构。

Description

用于块模式访问存储的数据压缩的方法和系统
发明领域
本发明涉及计算系统,并且更具体地涉及通过块存储协议促进(facilitate)对压缩数据的压缩和操作的方法和系统。
发明背景
在当今的商业环境中,所有类型的商业数据对商业成功变得越来越关键。商业生成的数据的巨大增长以及复杂性推动对信息存储的要求,定义共享的方式,管理和保护信息资产。
一般地,没有单一的科技或结构能够处理任何组织的所有需要。例如,主要的存储技术在EMC的白皮书,美国2003年3月的“LeveragingNetworked storage for your business”中被描述,并且基本上可通过位置和连接类型(计算机内存储、直接附加存储(DAS)、IP、通道网络(channelnetwork)等等)以及通过数据被访问的方法来识别。认为有3种基本类型的存储结构与数据访问的方法有关:块访问、文件访问和对象访问。
在块模式访问结构中,在服务器/客户机和存储媒介之间的通信按照块出现;信息直接从磁盘上逐块取出。操作系统记录每段信息在磁盘上的位置,而存储媒介一般不知道用来在设备上组织数据的文件系统。当需要读取或写入某些东西时,知道每块数据位于磁盘上的位置和如何将它们放置在一起的处理器直接从磁盘访问数据。块模式访问存储技术的例子是DAS(直接附加存储)、SAN(存储区域网络)、通过IP的块存储(例如,FCIP、iFIP、iSCSI等等)、存储器内存储等等。
文件访问需要服务器或客户机通过名称而不是通过物理位置来请求文件。因此,存储媒介(外部存储设备或在计算机内部的存储单元)通常负责将文件映射回到数据块以产生、保持和更新文件系统,同时块访问在“后台”处理。文件访问存储技术的例子是NAS(使用NFS、CIFS、HTTP等协议的网络附加存储)、MPFS(多路径文件服务)、计算机内文件存储等等。文件访问存储可被实现例如用于通用文件、网络应用、工程应用(例如CAD、CAM、软件开发等等)、图像和3D数据处理、多媒体流等等。
对象访问还通过从应用程序隐藏关于块、文件和存储拓扑的细节来简单化数据访问。对象访问出现在集成在内容管理应用程序中的API上。对象访问存储技术的例子是CAS(内容寻址存储)。
存储的更多有效的使用可以在数据被储存以前通过数据压缩实现。为了分别减少存储容量和传输时间,数据压缩技术用来减少待储存或待传输的数据量。压缩可以通过使用不同的压缩算法来实现,例如,标准压缩算法,例如由J.Ziv和A..Lempel在“A Universal Algorithm For Sequential DataCompression”,IEEE Transactions on Information Theory,IT-23,pp.337-343(1997)中描述的算法。它对透明地执行压缩很重要,意味着数据可无变化地用于已有的应用程序。在任一情况下,都有必要提供相应的解压缩技术来使原始数据能够被重建并且能够被应用程序访问。当对压缩的数据进行更新时,解压缩和再压缩全部块或文件一般不是有效的,特别是当对相对小部分的数据更新时。
对储存的数据的存储和访问的最优化的各种实现例如在下面的专利公布中被公开:
美国专利号5,761,536(Franaszek)公开了一种系统和方法,其用于储存可变长度对象以使存储器碎片减少,同时避免对于存储器重新组织的需要。可变长度对象的剩余部分可以被指定来在最佳配合或第一配合的基础上与来自另一个可变长度对象的剩余部分共享固定大小的存储块(共享块的两个这种剩余部分被称为室友(roommate))。一个剩余部分储存在块的一端,而另一个剩余部分储存在块的另一端。要共享存储块的可变长度对象选自同一个群组。因此在对象之间存在某种关联。作为例子,这种关联可以是对象来自同一页或者对象以跨越多个页的某线性顺序。关于群组的可变长度对象的信息,例如对象是否有室友,被储存在存储器中。
美国专利号5,813,011(Yoshida等人)公开了一种用于储存压缩数据的方法和装置,其中压缩文件由下列项组成:携带显示压缩管理表的位置的信息的首部;压缩代码;以及保存显示每个原始记录的压缩代码的存储位置的信息的压缩管理表。
美国专利号5,813,017(Morris等人)公开了一种用于减少备份子系统中的存储要求并进一步减少传输带宽上的负载的方法和装置,其中基本文件以分段压缩的格式被保持在服务器上。当在客户机上修改文件时,文件被传输到服务器并且利用差分函数与文件的分段压缩的基本版本比较,但不解压整个基本文件。作为在压缩的基本文件和文件的修改版本之间的差异的增量文件被产生和储存在作为备份子系统的一部分的存储媒介上。
美国专利号6,092,071(Bolan等人)公开了一种系统,其用于基于系统老化参数来控制数据的压缩和解压,以使压缩数据成为在系统存储层次中具有明显位置的系统管理的资源。处理器寄存器由高速缓冲存储器支持,高速缓冲存储器由主存储器支持,主存储器由解压缩的磁盘存储器支持,解压缩的磁盘存储器由压缩的磁盘存储器支持,然后压缩的磁盘存储器由磁带支持,等等。根据数据生命周期,基于系统老化参数或可选地在要求时,数据从解压缩的形式改变为压缩的形式并在系统控制下通过存储器层次而转移:数据最初被产生和储存;在系统控制下数据在稍后的时间被压缩;当数据被访问时,它在要求时按片段被解压缩;在某个稍后的时间,数据在系统控制下再次被压缩直到下一次访问。大的数据对象是分段的,并且压缩被应用于较不经常使用的数据。
美国专利号6,115,787(Obara等人)公开了一种磁盘存储系统,其中要储存在高速缓冲存储器中的数据被分成多个数据块,每个数据块具有与拥有数据的并且被压缩的追踪块关联的两个高速缓冲块,因而以容易读取的方式将多个压缩记录的存储提供至磁盘存储系统的高速缓冲存储器中。相应的数据块在压缩后被储存在一个或多个高速缓冲块中。用于从数据块被记录的地址取回每个高速缓冲块的信息被储存为对于高速缓冲存储器的检索信息的一部分。当在记录中的相应数据块被读取时,基于数据块的被记录的地址以及检索信息来确定储存压缩数据块的高速缓冲块。
美国专利号6,349,375(Faulkner等人)公开了一种数据压缩和解压与虚拟存储器系统的组合。讨论了许多计算机系统,包括所谓的嵌入式系统,其中数据以压缩格式被储存在存储设备中。响应于中央处理单元(CPU)对数据的请求,虚拟存储器系统将首先确定所请求的数据是否出现在CPU可访问的主存储器的部分中,主存储器也恰巧是解压缩的数据被储存的地方。如果请求的数据没有出现在主存储器的解压缩部分中,而更确切地以压缩的格式出现在存储设备中,则数据通过要求调页(paging)操作被传输至主存储器的解压缩部分。在要求调页操作期间,压缩数据将被解压缩。同样,如果数据从主存储器的解压缩部分被调页,并且该数据必须被保存,则它也可以在存储在用于压缩数据的存储设备以前被压缩。
美国专利号6,532,121(Rust等人)公开了一种将元数据(meta-data)储存在压缩记录中以允许更好的访问和管理合并数据的压缩系统。标记被添加到压缩流来表示各种事项。每个压缩记录具有表示压缩数据的起始的标记。这些标记具有嵌在其数据中的扇区号码以及再定位块号码。第二个标记用来表示空闲空间。当压缩数据储存在磁盘驱动器上时,空闲空间被保留,以便相同或修改的数据的未来压缩有稍微扩展而不使数据写到不同的位置的能力。压缩数据也可以缩短且剩余空间可以用这个空闲空间标记填充。第三个类型的标记是格式化模式标记。压缩算法一般非常紧密地压缩格式化模式。然而,期望主机将有用的数据写入存储设备。在格式化模式的区域中将典型的数据供给压缩器,但是标记被设置在这个数据的前面以允许格式化模式被返回而不是典型的数据。
美国专利号6,584,520(Cowart等人)公开了一种存储和检索压缩文件的方法。该方法包括动态地生成文件分配表来从压缩磁盘只读取存储器中取回压缩文件。
美国专利号6,678,828(Pham等人)公开了一种安全网络文件访问工具,其支持在客户计算机系统的文件系统和网络数据存储器之间数据的安全访问和传输。设置在客户计算机系统上并且由安全网络文件访问工具监控的代理程序确保客户计算机系统关于发布给网络数据存储器的文件系统请求的确认。安全网络文件访问工具设置在客户计算机系统和网络数据存储器之间的网络基础设施中,以应用有资格的访问策略并且选择性地通过直到文件系统请求。安全网络文件访问工具维持密钥存储并且使密钥与相应的文件系统文件关联起来以加密和解密文件数据,如通过安全网络文件访问工具传输到网络数据存储器并从网络数据存储器中读取的。
美国专利申请号2004/030,813(Benveniste等人)公开了一种储存信息的方法和系统,包括将主存储器压缩的信息储存到存储器压缩磁盘上,其中页面被分别地储存和检索,而没有解压缩主存储器压缩信息。
美国专利申请号2005/021,657(Negishi等人)公开了一种用于暂时保存对NAS服务器的操作请求的前端服务器,该操作请求从预定的客户机发送,被插入网络上的NAS服务器和客户机之间。该前端服务器保存关于储存在NAS服务器中的数据文件中间的关联的信息,基于该信息最优化从客户机接收的操作请求,并且将操作请求传送到NAS服务器。
发明内容
根据本发明的某些方面,为了供块模式访问存储器使用,提供了用于产生、读取和写压缩数据的方法和系统;所述方法和系统便于直接访问压缩数据同时维持压缩块的去碎片化(de-fragmentation)。
根据本发明的某些方面,产生用于存储在至少一个存储逻辑单元中的压缩数据的所述方法包括:
a)关于至少一个存储逻辑单元(LU)产生可由所述块模式访问协议访问并配置成虚拟地容纳原始数据的相应的虚拟逻辑单元(VLU),其中所述虚拟逻辑单元的大小对应于正被压缩的原始数据的估计的大小,实质上等于所述存储逻辑单元的大小;
b)将所述虚拟逻辑单元分割成一个或更多虚拟存储部分(簇);
c)压缩容纳在簇中的原始数据并且从而产生将要储存在存储逻辑单元内的相应压缩段(compressed section)中的压缩数据;
d)促进储存在压缩段中的压缩数据和其在虚拟逻辑单元的虚拟容纳之间的映射。
根据本发明的进一步的方面,压缩段被分成至少一个固定大小的压缩逻辑单元(CLU),且存储逻辑单元包括具有描述压缩段的至少一个记录的段表,所述记录至少保存关于对应于压缩段的CLU以及涉及所述CLU的存储位置指针的信息。
对于读取如上压缩和储存的数据,所述方法包括:
a)确定待读取的第一簇;
b)确定相应的压缩段的序号;
c)促进恢复对应于所述簇的数据;
d)如果待读取的数据范围超出恢复的相应簇的大小,则对具有递增了1的序号的压缩段重复步骤b)和c),直到所有待读取的数据被恢复。
对于写入如上压缩和储存的数据,所述方法包括:
a)确定待更新的第一簇,从而组成原始簇;
b)确定相应的压缩段的序号;
c)促进恢复对应于所述原始簇的数据;
d)计算更新数据在所述簇中的偏移并且促进在给定数据范围的更新;
e)将所述更新的簇压缩至更新的压缩段中;
f)促进用更新的压缩段盖写所述原始的压缩段;
g)如果待写入的数据范围超出恢复的相应簇的大小,则对具有递增了1的序号的压缩段重复步骤b)至f),直到所有需要的数据被写入。
根据本发明的进一步的方面,所述方法包括处理在写入数据期间释放的空闲CLU的列表,所述列表被处理直到所述LU断开。所述方法进一步包括比较所述原始段所需的CLU的数量No与更新的压缩段所需的CLU的数量Nu并促进下列项之一:
a)如果No=Nu,则用对应于更新的压缩段的CLU盖写对应于原始的压缩段的所有CLU;
b)如果No>Nu,则用对应于更新的压缩段的CLU盖写对应于原始的压缩段的前Nu个CLU并且更新关于释放的CLU的空闲CLU的列表;
c)如果No<Nu<No+Nf,则用对应于更新的压缩段盖写对应于原始的压缩段的所有CLU并且将对应于更新的压缩段的其余CLU写入包含在空闲CLU的列表中的CLU,其中Nf是在所述列表中CLU的数量;
d)如果No+Nf<Nu,则用对应于所述更新的压缩段的CLU盖写对应于所述原始的压缩段的所有CLU,将对应于所述更新的压缩段的所述CLU写入包含在空闲CLU的所述列表中的CLU,并且将对应于所述更新的压缩段的其余CLU连续地写入下一个空闲存储位置。
根据本发明的进一步的方面,所述方法进一步包括:
a)在断开所述存储逻辑单元以前检查空闲CLU的列表;
b)如果所述列表不是空的,则在包括在压缩段内的CLU中限定具有最高存储位置指针的CLU(第一个CLU);
c)促进将所述压缩数据从所述第一个CLU移动到具有较低存储位置指针的空闲CLU(第二个CLU);
d)将所述第二个CLU分配给有关的压缩段并且将所述第一个CLU分配给空闲CLU的所述列表;
e)重复步骤b)-d)直到包括在压缩段内的所有CLU的所述存储位置指针低于包括在空闲CLU的列表中的任一个CLU的指针;
f)更新段表。
根据本发明的进一步的方面,所述系统包括:
a)用于关于至少一个存储逻辑单元产生可由所述块模式访问协议访问并配置成虚拟地容纳原始数据的相应的虚拟逻辑单元的装置,其中所述虚拟逻辑单元的大小对应于正被压缩的原始数据的估计的大小,实质上等于所述存储逻辑单元的大小;
b)用于将所述虚拟逻辑单元分割成一个或更多虚拟存储部分(簇)的装置;
c)用于压缩容纳在簇内的所述原始数据并且从而产生要储存在所述存储逻辑单元内的相应压缩段中的压缩数据的装置;
d)用于促进储存在压缩段中的压缩数据和其在虚拟逻辑单元的虚拟容纳之间的映射的装置;
根据本发明的其他方面,所述系统可组成通信设备的一部分,所述通信设备在存储网络中可操作并根据本发明配置为执行对压缩数据的压缩和操作。
根据本发明的其他方面,所述系统可组成存储设备的一部分,所述存储设备可用至少一个块模式访问协议操作并根据本发明配置为执行压缩和操作。
根据本发明的其他方面,提供了在存储网络中可操作并根据本发明配置为执行对压缩数据的压缩和操作的通信设备。
根据本发明的其他方面,提供了可用至少一个块模式访问存储协议操作并根据本发明配置为执行对压缩数据的压缩和操作的存储设备。
本发明的某些方面的优点是促进对压缩数据的随机访问并实现对压缩数据的操作而不需要解压缩全部的压缩块,实质上没有损坏储存和检索能力并且使用者不需要知道压缩/解压操作以及压缩数据的存储位置。
应理解,根据本发明的系统可以是适当编程的计算机。同样地,本发明设想由计算机可读取的、用于执行本发明的方法的计算机程序。本发明进一步设想机器可读取的存储器,其可触知地包括可由机器执行的、用于执行本发明的方法的指令程序。
附图说明
为了理解本发明并且观察在实践中它可被如何执行,现在仅作为非限定性的例子参考附图描述优选的实施方式,其中:
图1a)-1c)是如本领域中公知的典型的块模式访问存储结构的示意性结构图。
图2a)-2e)是根据本发明的某些实施方式的存储结构的示意性结构图。
图3是根据本发明的某些实施方式的系统功能结构的示意性结构图。
图4是根据本发明的某些实施方式的虚拟逻辑单元和逻辑单元的示意图。
图5是根据本发明的某些实施方式的段表的示例性结构。
图6是根据本发明的某些实施方式的压缩数据块创建的操作的一般化流程图。
图7是根据本发明的某些实施方式的对压缩数据块的读取操作的一般化流程图。
图8是根据本发明的某些实施方式的对压缩数据块的写操作的一般化流程图。
图9是示出根据本发明的某些实施方式的对压缩段的写操作的顺序的一般化流程图。
图10是根据本发明的某些实施方式在从存储逻辑单元断开期间CLU管理的一般化流程图。
图11a-11c是根据本发明的某些实施方式的在CLU和指定的磁盘存储片段之间的关系的示意性图示。
发明详细描述
在下面的详细描述中,为了提供对本发明的彻底理解,阐述了许多具体细节。然而,本领域的技术人员应理解,本发明可以在没有这些具体细节的情况下实践。在其他的例子中,没有详细描述公知的方法、过程、部件和电路,以便不使本发明难理解。在附图和描述中,相同的参考数字表示对不同的实施方式或配置共同的那些部件。
除非另外特别说明,正如从以下的讨论中显而易见的,应认识到,在整个说明书讨论中,利用术语例如“处理”、“计算”(computing)、“计算”(calculating)、“确定”等来指计算机或计算系统或处理器或类似的电子计算设备的行为和/或过程,这些处理器或电子计算设备将表示为在计算系统的寄存器和/或存储器内的物理的例如电子的量的数据操作和/或转换为类似地表示为在计算系统的存储器、寄存器或其他这种信息存储、传输或显示设备内的物理量的其他数据。
本发明的实施方式可以使用术语,例如用于执行这里的操作的处理器、计算机、装置、系统、子系统、模块、单元、设备(单个或多个形式)。这可以为期望的目的而特别构建,或它可包括由储存在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可以储存在计算机可读取存储媒介中,例如但不限于任何类型的磁盘,包括光盘、CD-ROM、磁光盘、只读取存储器(ROM)、随机存取存储器(RAM)、电可编程只读取存储器(EPROM)、电可擦除可编程只读取存储器(EEPROM)、磁卡或光卡、或适合于储存电子指令并且能够耦合到计算机系统总线的任何其他类型的媒介。
在此介绍的步骤/设备(或上面规定的相似术语)以及显示器没有固有地与任何特定的计算机或其他装置有关,除非另外特别说明。各种通用系统根据这里的教导可以与程序一起使用,或可证明对构建更专门的装置来执行期望的方法是方便的。对于多种这些系统的期望结构将在下面的描述中出现。另外,本发明的实施方式没有参考任何特定的编程语言描述。应认识到,多种编程语言可以用来实现在此描述的发明的教导。
记住,注意力被引到图1a-1c,其示出如本领域中公知的典型的块模式访问存储结构的结构图。
图1a示出典型的DAS(直接附加存储)结构,其中存储设备12通过块模式访问存储协议(例如,SCSI、光纤通道等)由连通性媒介直接连接到计算机11。这个直接连接提供了对数据的更快的访问;然而,存储器仅仅可从服务器访问。DAS包括例如内部附加的局部磁盘驱动器或外部附加的RAID(独立磁盘的冗余阵列)或JBOD(仅仅是一批磁盘)。
图1b示出使用块模式访问存储协议提供对存储子系统的访问的存储局域网(SAN)的典型结构。存储子系统包括主计算机11(一般具有主机总线适配器(HBA))、用于按规定路线发送存储业务(storage traffic)的FC网络(SAN)13以及存储设备12。存储子系统对多个主机一般可同时利用。存储网络包括便于数据传输的一个或更多通信设备15(例如,交换机、路由器、网桥等)。
图1c示出基于iSCSI协议的存储网络的典型结构,该协议能够使块数据在IP网络14上在计算机11和存储设备12之间传输而不需要专门网络基础设施,例如光纤通道。IP网络包括便于数据传输的一个或更多通信设备15(例如,交换机、路由器、网桥等)。
参考图2a-2e,其作为非限定性的例子示出根据本发明的某些实施方式的存储结构的示意图。图2a示出图1a中所示出的DAS存储结构的本发明的某些实施方式;图2b示出图1b所示出的SAN存储结构的本发明的某些实施方式;图2c示出图1c所示出的iSCSI存储结构的本发明的某些实施方式。压缩系统20通过接口21操作性地耦合到计算机11(例如,直接耦合到计算机或相应的LAN,或间接地通过存储网络13,或间接地通过IP网络14等)并且通过接口22操作性地耦合到存储设备12。压缩系统20在计算机和存储设备之间充当网桥。压缩系统20可支持任何物理接口(例如,以太网、光纤通道等)并且可配置成保存存储设备特征,例如冗余、镜像、快照、失效转移(failover)、回退、管理等等。压缩系统可配置为与已有的网络基础设施无缝地集成。使用者不需要知道压缩和解压缩操作以及压缩数据的存储位置。
压缩系统配置成截获在计算机和存储设备之间的通信,并且得到和压缩相应于与数据访问相关的请求的数据块。
在对要在存储前被压缩的数据块进行“写”操作期间,来自计算机的数据块由压缩系统20截获、被压缩并移动到存储设备12。包括不同类型的数据(例如,文本、图像、声音等)的数据块可由不同的压缩算法压缩。“读取”操作在相反的方向继续进行;所需的数据块由压缩系统重新得到、(根据所需的数据范围部分地或全部地)被解压缩并且发送到合适的API。
压缩系统20配置成在计算机和存储设备之间以透明的方式传输所选的与控制相关的请求(例如,格式化磁盘、磁盘去碎片、进行快照等),同时干预与数据访问有关的事务(transaction)(例如读取、写等)以及一些与控制有关的事务(例如容量状态)。
在本发明的某些实施方式中,压缩系统20也可配置成根据预先定义的标准(例如,LUN号、大小、IP地址、数据类型等)只压缩选择的传递的数据块。
原始数据(或其相关部分)在写到存储设备12期间或以前由压缩系统20压缩。类似地,压缩数据(或其相关部分)在从存储设备12中读取期间或之后由压缩系统20压缩。
如本领域中公知的,典型的存储系统和网络能够识别存储的分开的组织。存储磁盘或一组磁盘可在概念上以逻辑单元分开。逻辑单元(LU)可直接相应于卷驱动器(volume drive)、相应于主机应用程序、存储设备等,并且组成物理存储的逻辑表示。每个逻辑单元具有称为逻辑单元号(LUN)的地址,该逻辑单元号允许地址被唯一地识别。使用者可确定LUN是否是磁盘驱动器、磁盘驱动器的号码、磁盘驱动器上的分区等等。
根据本发明的某些实施方式,压缩系统20配置成关于至少一个逻辑单元(LU)产生具有大于LU尺寸的尺寸的相应的虚拟逻辑单元(VLU)。在LU和VLU的大小之间比率根据期望的压缩比来定义;因此,VLU的大小对应于正被压缩的原始数据的估计的大小,实质上等于LU的大小。(例如,在本发明的某些实施方式中,VLU和LU的大小之间的典型比率被估计为对电子邮件是3,对文本格式化数据是8,等等。)当截获在计算机和存储设备之间的通信时,压缩系统将来自计算机的与数据访问有关的请求寻址到VLU而不是LU,并且VLU提供原始数据的虚拟容纳。因此,根据本发明的某些方面,计算机的操作系统(OS)将关联VLU作为原始数据存储的虚拟表示,压缩系统将相应的数据压缩至存储设备的LU中,并且促进在压缩数据及其在VLU的虚拟表示之间的映射。下面参考图3-9将根据本发明的某些实施方式进一步描述对压缩数据的操作。在VLU和LU的大小之间的比率可根据某些标准(例如,根据在压缩数据块中的数据的主要类型,根据对于所述数据可得到的最大压缩比率,等等)预先确定或在压缩过程期间是可修改的。
图2d示出当压缩系统20与至少一个通信设备15结合时对本发明的另一个实施方式的存储网络结构。该结合可以按不同的方式提供。例如,压缩系统20可尤其结合在通信设备中,压缩系统的功能可以在专门的板上实现,(全部地或部分地)分布在设备的其他模块之间,等等。接口21和/或22可以实现为通信设备的外部、内部或分布式接口,或根据本发明以促进压缩系统的功能的任何其他的方式。
图2e作为非限定性的例子示出当压缩系统20与至少一个存储设备12结合时本发明的另一个实施方式的存储网络结构。该结合可以按不同的方式提供。例如,压缩系统20可以尤其结合在存储设备中,压缩系统的功能可以在专门的板上实现,(全部地或部分地)分布在设备的其他模块之间,等等。接口21和/或22可以实现为存储设备的内部或分布式接口,或根据本发明以促进压缩系统的功能的任何其他的方式。
注意,本发明没有被参考图1和2描述的特定结构限制。精通本领域的技术人员应容易认识到,本发明同样适用于任何计算系统或包括块存储协议(例如,SCSI、光纤通道、iSCSI等)的任何存储网络结构。压缩系统20(或其部分)的功能可以在配置为网桥(如图2a-2c所示)或代理服务器的单机服务器上实现,分布在几个平台之间或结合在其他存储网络元件(例如文件服务器、企业或网络交换机、路由器、存储设备等等)中(如图2d-2e所示)。该结合可以按不同的方式提供并且在软件和/或固件和/或硬件中实现。
图3示出根据本发明的某些实施方式的压缩系统20的示意性功能结构图。
压缩系统包括耦合到对话(session)管理器32的客户机输入/输出(I/O)块31。I/O块得到与数据访问有关的请求(例如,读取、写等等)并且将其转送给对话管理器。
对话由LUN容量请求(例如,SCSI LUN容量请求命令)开始并且由从同一个对话中接收到的LUN断开请求结束。对话管理器32将所有对话的私有数据保存为例如源对话地址、对话计数器、对话状态、缓冲器在使用的所有情况等等。对话管理器将所有的请求传输到耦合到对话管理器的调度程序33。调度程序33操作性地耦合到数据块管理器34、缓冲管理器35以及压缩/解压缩块36。调度程序33根据本发明的某些实施方式向数据块管理器34请求与数据有关的事务(例如,读取、写等等)并且向压缩/解压缩块36请求压缩/解压缩操作。一般地,压缩算法具有以在压缩效率和性能参数之间的折衷(trade-off)为特征的一些压缩级别。压缩块36可选择最佳的压缩级别并且将压缩比率调节为目前由输入/输出块31处理的插口的数量(和/或CPU利用率)。关于所选的压缩级别上的信息被保存在数据的压缩部分中。数据块管理器34负责由数据块共享的存储器和顺序。压缩/解压缩块36能够读取和解压缩缓冲器以及压缩和写数据。压缩块也配置成根据LU大小以及预期的压缩比率(或预先确定的LU/VLU比)来估计VLU大小,并且报告VLU大小以及空闲容量,作为对容量状态请求的答复。
缓冲管理器35管理存储器缓冲资源并且负责将存储缓冲器分配和释放到任何块操作。压缩系统进一步包括耦合到对话管理器的完整性管理器、缓冲管理器以及数据块管理器。完整性管理器负责压缩系统中的所有处理的同步和一般控制,例如保持LUN的完整性,等等。它也负责将存储缓冲器通过存储物理I/O接口38迅速传递到(flash to)物理磁盘中,并且在需要时从磁盘上读取。
本领域技术人员应容易认识到,本发明没有被图3的配置限制;等效的和/或修改的功能可按另一方式被合并或分开。
图4示出根据本发明的某些实施方式的原始和压缩数据块的示意图。虚拟逻辑单元(VLU)41分割成具有实质上相等的预定大小的虚拟存储部分43(在下文中称为虚拟存储簇或簇)。这些虚拟存储簇在对数据块的输入/输出事务(与数据访问相关的请求)期间用作压缩/解压缩操作的极小元素。虚拟存储簇的大小是可配置的;较大的簇提供了较低的处理开销以及较高的压缩比率,而较小的簇提供了更有效的访问但较高的处理开销。此外,簇的大小取决于可利用的存储器以及所需的性能,因为每个I/O事务的压缩/解压缩处理需要存储器中的至少一个可利用的簇,同时性能限定了许多同时的事务。簇的数量等于(VLU的大小除以簇的大小得到的)整数并且如果有余数则加1。
可选地,在本发明的某些其他实施方式中,簇的大小可以根据例如取决于数据的类型(例如,文本、图像、声音、组合等等)的预先确定的标准、指定到LUN的应用等而变化。
每个虚拟存储簇43(例如在图4中所示的43A-43C)对应于在逻辑单元内相应的压缩段46(例如在图4中所示的46A-46C),储存由压缩系统20压缩的相应的数据。具有相同大小的簇可自然地导致具有不同大小的压缩段,取决于在每个簇中的数据的种类以及压缩算法。如果可获得的簇压缩的比率小于预先确定的值,那么LU的相应的压缩段可包括对应于该簇的未压缩数据。例如,如果在给定的簇中的原始数据被压缩至不小于原始簇大小的X%(比如95%),那么由于可忽略的压缩比率,相应的段将容纳原始簇数据而不是压缩数据。
在本发明的某些实施方式中,压缩处理可包括适应能力,其根据内容为每个数据块提供最佳的压缩算法(例如,最佳地适合于具有主要的声音、文本、图像等数据的簇的不同的压缩算法)。
根据本发明的某些实施方式,每个逻辑单元44包括首部45、一些压缩段46、段表47以及空闲空间49。首部45包括包含逻辑单元号(LUN)的唯一的描述符、虚拟逻辑单元(VLU)的大小以及表示储存的数据的至少一部分是否被压缩系统20处理的标识(signature)。首部具有固定的长度(例如,作为非限定性的例子,24字节,包括用于标识的4字节、用于唯一的描述符的16字节以及用于关于相应的虚拟逻辑单元的大小的信息的4字节)。
在本发明的其他实施方式中(例如,在某些实施方式中,当压缩/解压缩功能与存储设备结合时),首部45或其任何部分以及其中的组合可组成磁盘属性的一部分。
在LU内的压缩段的数量等于虚拟存储簇的数量。根据本发明的某些实施方式,在压缩段46中的数据被储存在都具有相等的预定大小(例如,如在图4中所示的,压缩逻辑单元48A0-48A2对应于压缩段46A,压缩段46A对应于虚拟存储簇43A)的压缩逻辑单元(CLU)48中。预先确定的CLU大小是可配置的;较大的CLU提供了较低的开销,而较小的CLU导致较高的分辨率。此外,在本发明的某些实施方式中,CLU的大小可调节至数据块的最大和/或最佳大小。
在压缩段内的CLU的数量等于(压缩段的大小除以CLU的大小得到的)整数并且如果存在余数则加1。在压缩段中的最后一个CLU可以是部分充满的(例如图4中的48-A2、48-C1)。这种CLU可以按与充满的CLU相同的方式处理。CLU可以被认为是由在存储器(物理存储媒介)中的片段的虚拟序列形成的压缩的存储的虚拟部分。下面参考图11进一步描述在CLU和指定的存储片段之间的关系。
段表47包括所有压缩段46的纪录,并且指定在哪里找到对应于每个压缩段的CLU。关于每个压缩段的记录(在下文中为段记录)包括表示段是否被压缩、压缩段的总大小、以及涉及包括在段内的所有CLU的指针的列表的标识。可选地,记录可包括在相应簇的压缩期间使用的压缩算法以及簇的大小(如果根据预先确定的标准是可变的)的表示。正如将参考图5进一步示出的,在本发明的某些实施方式中,段记录的长度是相等的,并且段表的大小与压缩段的数量成比例,以及相应地与虚拟存储簇的数量成比例。在本发明的某些实施方式中,当VLU/LU大小是预先确定的时,整个段表具有预定的大小。
在本发明的其他实施方式中(例如在某些实施方式中,当压缩/解压缩功能与存储设备结合时,等等),段表47可组成磁盘属性的一部分。
图5作为非限定性的例子示出关于示例性数据块50的段表中的示例性记录。
压缩段的记录51包括标识52、段53的大小以及一些条目54。段记录的每个条目54包括关于包括在压缩段内的相应CLU的信息。段表包括物理位置和逻辑CLU号之间的关系。
示例性原始数据块50(在进一步的实施例中也涉及)具有原始大小3MB+413bit。为了实施例的目的,预定的簇大小是1M并且CLU大小是60K。因此,数据块将需要4个虚拟存储簇(3个1MB的簇和1个部分充满的但被处理为完整簇的簇)。
所述示例性虚拟存储簇对应于具有相应的大小例如301123、432111、120423和10342字节的压缩段。因为60K的CLU长度意味着61440字节,0号段具有5个分配的CLU([301123/61440]+1);1号段具有8个分配的CLU([432111/61440]+1);2号段具有2个分配的CLU([120423/61440]+1)以及3号段具有1个分配的CLU([10342/61440]+1)。总体上,压缩数据块将包括16个CLU(总大小为15*61440字节+10342字节)。
如果示例性数据块50第一次被储存,那么CLU将具有物理位置的连续分配,例如,
-具有物理位置指针1、2、3、4、5的前5个CLU将被分配到0号段;
-具有指针6、7、8、9、10、11、12、13的接下来的8个CLU将被分配到1号段;
-具有指针14、15的接下来的2个CLU将被分配到2号段;
-具有指针16的接下来的1个CLU将被分配到3号段。
正如下面参考图8-11进一步描述的,对应于数据块的CLU的分布可以在更新(在目前的实施例中,更新对压缩段的大小没有影响)后改变。例如,
-具有指针1、4、5、6、9的CLU将被分配到0号段;
-具有指针2、3、7、10、11、12、15、14的CLU将被分配到1号段;
-具有指针8、13的CLU将被分配到2号段;
-具有指针16的CLU将被分配到3号段。
当数据块被第一次储存时,CLU的虚拟(逻辑)序列与对应于CLU的存储媒介段的物理序列相同。在更新的数据块中,CLU的虚拟(逻辑)序列可以与对应于CLU的磁盘片段的物理序列不同。例如在上面的实施例中,第一个簇的第二个CLU最初位于2号物理片段,其中在更新后,它位于4号物理片段。每个CLU被指定给存储器中的片段,相应的片段被写入首部45的长度加上被段序号乘的CLU的长度的偏移中。例如,在上面的示例性数据块中,当第一个簇的第二个CLU位于2号物理片段时,它在存储位置存储器中被写入首部的24字节加上2*61440字节的偏移中。当在更新后该CLU位于4号物理片段时,它的偏移变为首部的24字节加上4*61440字节。
在本发明的某些实施方式中,在每个段记录中的条目的数量是不变的,并且对应于可能需要用于储存簇的CLU的最大数量。因此,每个段记录的大小是不变的,而不管包括在段内的CLU的实际数量如何;未在使用中的条目可能有特殊的标记。在段记录中的条目的数量等于簇的大小除以CLU的大小得到的整数加1。段表的大小等于被在VLU中的簇的数量乘段记录的大小。
在示出的簇的预定大小为1MB以及CLU的预定大小为60K的实施例中,压缩段的每个记录具有17个条目(1MB/60K的整数加1),每个条目具有4字节。相应地,压缩的0号段的示出的段记录51具有包括关于相应CLU的物理位置的信息的5个条目以及12个空条目(例如,标记为-1)。段记录的大小是72字节(用于关于压缩段的大小和标识的信息的4字节加上17个条目*4字节)。段表的总大小是288字节(用于每个段记录的4个压缩段*72字节)。
图6-11示出根据本发明的某些实施方式对压缩数据执行的输入/输出操作。注意,根据本发明的某些实施方式,压缩系统20也干预涉及可利用的存储器大小(原始数据的估计的存储空间)、将VLU的大小保存在相应LU的首部中(或在参考图4详述的磁盘属性中)并且在请求时提供所述数据的命令。
参考图6,其示出根据本发明的某些实施方式的压缩数据块建立的一般化流程图。当请求60是储存数据块时,压缩系统20虚拟地建立虚拟逻辑单元61,如参考图2a-2c所述的,或参考当储存以前的数据块时建立的VLU。在接下来的步骤62中,压缩系统将原始数据的第一个固定大小的部分(簇)处理为具有大小X的压缩段。(压缩可在任何适当的商业或专业算法的帮助下提供)。压缩系统限定第一个CLU的第一个空闲存储位置,开始并且处理压缩段在该CLU以及随后的CLU中的连续写入63,用于储存在存储设备中,并且准备在要记录在段表中的过程期间被占据的CLU的指针64。压缩系统重复对下一个簇的处理65,直到全部数据块的数据以压缩的形式被写入并且段表被建立66。
参考图7,其示出根据本发明的某些实施方式的对压缩数据块进行读取操作的一般化流程图。
读取操作开始读取识别VLU中的数据偏移以及待读取的数据的范围Y的请求70。应记得,如参考图2a)-2c)所描述的,计算机的操作系统(OS)将使VLU关联为原始数据存储的虚拟表示,压缩系统将相应的数据压缩至存储设备的LU并且促进在压缩数据及其在VLU的虚拟表示之间的映射。
压缩系统20将第一个待读取的虚拟存储簇(在下文中为起始簇)的序号计算为(偏移除以簇的大小得到的)整数且如果存在余数则加1(71)。待读取的簇的号码由(待读取的数据范围除以簇的大小得到的)整数加1限定。因此,压缩系统限定与待读取的簇一一对应的压缩段并且指向对应于待压缩和读取的压缩段的CLU。
在本发明的某些实施方式中,所有待读取的数据范围可以是全部解压缩的。可选地,如图7所示,解压缩可以按步骤提供,并且对于读取操作,压缩系统可以维持缓冲器实质上等于簇的大小。第一个读取请求包括对于包括在起始簇的压缩段内的CLU的指针。对应于起始簇的全部压缩段被读取且没有被压缩系统压缩至目标缓冲器(72)。在下一步骤中,压缩系统计算在簇内所需的偏移(73),并且复制待传递到应用程序的所需的数据(74)。复制数据需要的长度如下计算:
长度=最小值{数据范围Y;(簇的大小-偏移mod簇的大小)}
如果数据范围Y超出簇的大小,则重复操作(75)。
例如,参考示例性数据块50,请求从偏移1MB+1340中读取20字节长度的数据。读取将从第二个簇开始,因此,需要的数据包括在从第二个压缩段开始的压缩数据块内。在段表中第二个压缩段的记录包括具有指针2、3、7、10、11、12、15、14的CLU。因此,这些CLU将被读取至在压缩系统20内的临时缓冲器中并且被压缩至1MB缓冲器(例如,在压缩系统中)。然后来自缓冲器偏移1340的20字节将被移到目标(使用者的)缓冲器。复制数据所需的长度是20字节(等于在20字节和(1MB-1340字节)之间的最小值)。如果其它请求是从同样的偏移读取2MB长度的数据,那么操作将按类似于第三个和第四个压缩段的方式重复;并且从起始簇复制的所需的数据长度是1MB-1340字节(等于在2MB和(1MB-1340字节)之间的最小值)。
参考图8,其示出根据本发明的某些实施方式的对压缩数据块进行写操作的一般化流程图。“写”请求识别在VLU中的偏移以及待写入的数据的范围Y(80)。压缩系统20将第一个待更新(盖写)的虚拟存储簇的序号计算为(偏移除以簇的大小得到的)整数且如果存在余数则加1(81)。要盖写的虚拟存储簇的数量由(待写入的数据的范围除以簇的大小得到的)整数并且如果存在余数则加1来限定。因此,压缩系统限定要重写的压缩段并且按类似于参考图7所述的方式生成读取请求。在对应于起始簇的全部压缩段被读取并且未被压缩系统压缩到缓冲器(82)之后,压缩系统计算在如参考图7所述的簇内的需要的偏移(83),并且更新(盖写)所需的数据范围(84)。然后,压缩系统压缩更新的簇(85),更新段表并且请求将新的压缩段写入压缩数据块(86)。如果数据范围Y超出簇的大小,则对后续的簇重复操作(87)。当处理结束时,压缩系统更新段表88。
如上所述,在本发明的某些实施方式中,所需的数据的存储位置可以被直接访问,因此读取/更新(及类似的)操作仅仅需要恢复包括所需的数据范围的虚拟簇而不是全部数据块。
一般而言,由于在分配的存储器中引起的未使用的空间,数据块更新可产生碎片。图9和10示出根据本发明的某些实施方式的CLU管理的碎片处理算法。图9示出根据本发明的某些实施方式在对压缩段(图8中的步骤86)进行写/更新操作期间CLU管理的算法。在写更新的压缩段以前,压缩系统比较更新和旧的压缩段所需的CLU的数量(91)。如果CLU的数量没有变化,那么压缩系统20请求将更新的压缩段连续地写入对应于旧的压缩段的所有CLU 92。如果所需的CLU的新的数量少于旧的数量,那么压缩段将被连续地写在对应于旧的压缩段的CLU的部分上。关于释放的CLU的信息在由压缩系统20处理的空闲CLU的专门列表(队列)中被更新,直到LU被断开。如果所需的CLU的新的数量多于旧的数量,那么压缩段将被连续地写在对应于旧的压缩段的所有CLU上(94)并且然后写在从空闲CLU队列中取得的CLU上(95)。如果仍然需要更多的CLU,那么压缩系统将限定分配到数据块(#n)的最后一个CLU并且请求连续地写在从号码(n+1)开始的CLU上(96);分配的CLU的列表将因此被更新(97)。
图10示出在从存储逻辑单元断开的期间CLU管理的算法。
在从LU断开(102)以前,压缩系统检查空闲CLU的列表是否是空的(101)。如果列表仍然包括CLU,则压缩系统20在使用中的CLU中限定具有最高存储位置指针的CLU。包含在所述CLU内的压缩数据被传输到具有较低指针的空闲CLU并且空的CLU被添加到空闲CLU的列表(103)。该处理过程重复直到在使用中的CLU的所有指针低于包括在空闲CLU的列表中的任何一个CLU的指针(104)。段表将因此被更新(105)。在整个重写过程结束后或根据其他预先确定的标准,根据每个所述CLU重写,可能出现这种更新。在过程结束时,LU断开并且空闲CLU被释放(106)。根据不同的算法可以提供空闲CLU对上述过程的选择。例如,在本发明的某些实施方式中,来自CLU的具有最高存储位置指针的所述压缩数据可以被传输到具有最低存储位置指针的空闲CLU。
参考图11a-11c,其示出根据本发明的某些实施方式的在CLU和指定的磁盘存储分段之间的关系。图11a示出当被创建为新的压缩数据块时在图5中所示的示例性数据块50。CLU的虚拟(逻辑)序列与对应于CLU(在CLU内的号码说明对于相应的磁盘存储分段的指针)的磁盘分段的物理序列是一样的。图11b示出在具有未改变大小的压缩段的更新的压缩数据块内的CLU的新的分布,如在参考图5所描述的在更新的示例性数据块中的。CLU的虚拟(逻辑)序列与对应于CLU的磁盘分段的物理序列不同,同时维持LU的去碎片化结构。图11示出在更新的示例性压缩数据块50内的CLU的去碎片的分布,其中第二个压缩段的大小在从432111更新到200100字节后变化了。如果例如更新偏移是1MB+314字节,那么第一个压缩段在更新期间是不受影响的。第二个压缩段的新的大小需要分配仅仅4个CLU([200100/61440]+1)。注意,如图11B所示,在更新前,第二个压缩段容纳了8个CLU(第2、3、7、10、11、12、15和16号)。如参考图9所述的,压缩系统20将更新的第二个压缩段写在来自压缩段的前4个CLU上(在本实施例中是2、3、7、10),并且将具有指针11、12、15和16的CLU发送到空闲CLU的列表。第三个和第四个压缩段在这个特定的更新期间也未受影响。如参考图10所述的,压缩系统20在从LU断开以前将检查空闲CLU的列表是否是空的。通过这个实施例,列表包括具有存储位置指针11、12、15和16的CLU。如参考图10所述的,压缩系统将来自具有指针13的CLU的压缩数据重写到具有指针11的CLU;将来自具有指针16的CLU的压缩数据重写到具有指针12的CLU,并且释放具有指针13-16的CLU。因此,更新的数据块具有12个分配的没有去碎片化的CLU。
另外的要求(例如,安全访问、数据完整性等等)可导致在压缩系统和计算机之间的更复杂的通信。
还应理解,本发明在其申请中没有被限制为在此包括的描述中阐述的或图中示出的细节。本发明能够具有其他的实施方式并且可以以各种方式实践和实现。因此,应理解,在此所采用的措词和术语是为了描述的目的且不应被视为限定性的。因此,本领域的技术人员应认识到,本公开所基于的概念可以容易地用作基础,以设计用于实现本发明的几个目的的其他结构、方法、和系统。
本领域的技术人员应容易认识到,各种修改和变化可以应用于在上文中描述的本发明的实施方式而不偏离在所附权利要求中以及由权利要求规定的本发明的范围。

Claims (38)

1.为了用在块模式访问存储协议上,一种产生用于存储在至少一个存储逻辑单元中的压缩数据的方法,所述方法包括:
a)关于至少一个存储逻辑单元产生可由所述块模式访问协议访问并配置成虚拟地容纳原始数据的相应的虚拟逻辑单元,其中所述虚拟逻辑单元的大小对应于正被压缩的原始数据的估计的大小,实质上等于所述存储逻辑单元的大小;
b)将所述虚拟逻辑单元分割成一个或更多虚拟存储部分(簇);
c)压缩容纳在至少一个簇中的所述原始数据,并且从而生成要储存在所述存储逻辑单元内的相应压缩段内的压缩数据;
d)促进储存在所述压缩段内的所述压缩数据和其在所述虚拟逻辑单元的虚拟容纳之间的映射。
2.如权利要求1所述的方法,其进一步包括将至少一个压缩段分成至少一个固定大小的压缩逻辑单元(CLU),并且产生具有描述所述压缩段的至少一个记录的段表,所述记录至少保存关于对应于所述压缩段的CLU以及涉及所述CLU的存储位置指针的信息。
3.如权利要求2所述的方法,其中所述存储逻辑单元包括所述段表。
4.如权利要求1所述的方法,其中所述簇具有预先确定的实质上相等的大小。
5.如权利要求1所述的方法,其中簇的大小根据包括在所述簇中的数据类型从预定大小的列表中选择。
6.如权利要求1所述的方法,其中选择簇的大小以促进所需的压缩比率。
7.如权利要求1所述的方法,其中所述存储逻辑单元包括首部,所述首部包括所述存储逻辑单元的唯一的描述符。
8.如权利要求7所述的方法,其中所述首部保存涉及所述虚拟逻辑单元的大小的信息。
9.如权利要求2所述的方法,其中描述所述压缩段的所述记录具有相等的预先确定的大小。
10.如权利要求1所述的方法,其中利用根据包括在所述簇内的数据类型而选择的压缩算法处理所述簇。
11.如权利要求1所述的方法,其中只有当文件符合预先确定的标准时才提供压缩原始文件。
12.一种读取根据权利要求1压缩的数据的方法,所述方法包括:
a)确定待读取的第一簇;
b)确定相应的压缩段;
c)促进恢复对应于所述簇的数据。
13.一种读取根据权利要求2压缩的数据的方法,所述方法包括:
a)确定包括待读取的数据的第一个压缩段的序号;
b)通过参考所述段表确定对应于所述压缩段的CLU以及其存储位置;
c)促进从所述压缩段恢复所述数据。
14.如权利要求13所述的方法,其进一步包括如果待读取的数据范围超出所恢复的相应簇的大小,则对具有递增了1的序号的压缩段重复步骤b)和c),直到所有待读取的数据被恢复。
15.一种在给定的数据范围将数据写入根据权利要求1压缩的数据的方法,所述方法包括:
a)确定待更新的第一簇,从而组成原始簇;
b)确定相应的压缩段;
c)促进恢复对应于所述原始簇的所述数据;
d)计算更新数据在所述簇中的偏移并且促进在所述给定的数据范围的更新;
e)将所述更新的簇压缩至更新的压缩段中;
f)促进用更新的压缩段盖写所述原始的压缩段。
16.一种在给定的数据范围将数据写入根据权利要求2压缩的数据的方法,所述方法包括:
a)确定包括待更新的数据的第一个压缩段的序号,从而组成原始的压缩段;
b)通过参考段表确定对应于所述原始的压缩段的CLU以及其存储位置;
c)促进从所述原始的压缩段恢复所述数据;
d)计算在相应的簇内的所述更新数据的偏移并且促进在所述给定的数据范围的更新;
e)将所述更新的簇压缩至更新的压缩段中;
f)促进用更新的压缩段盖写所述原始的压缩段;
g)更新所述段表。
17.如权利要求16所述的方法,其进一步包括如果待写入的数据范围超出所恢复的相应簇的大小,则对具有递增了1的序号的压缩段重复步骤b)至f),直到所有所需的数据被写入。
18.如权利要求16所述的方法,其中所述存储逻辑单元以去碎片的方式被维持。
19.如权利要求16所述的方法,其进一步包括处理在写入数据期间释放的空闲CLU的列表,所述列表被处理直到所述存储逻辑单元断开。
20.如权利要求19所述的方法,其进一步包括比较所述原始段所需要的CLU的数量No与所述更新的压缩段所需要的数量Nu并且促进下列项之一:
a)如果No=Nu,则用对应于所述更新的压缩段的CLU盖写对应于所述原始的压缩段的所有CLU;
b)如果No>Nu,则用对应于所述更新的压缩段的CLU盖写对应于所述原始的压缩段的前Nu个CLU,并且更新关于释放的CLU的空闲CLU的所述列表;
c)如果No<Nu<No+Nf,则用对应于所述更新的压缩段的CLU盖写对应于所述原始的压缩段的所有CLU,并且将对应于所述更新的压缩段的其余CLU写入包含在空闲CLU的所述列表中的所述CLU,其中Nf是在所述列表中CLU的数量;
d)如果No+Nf<Nu,则用对应于所述更新的压缩段的CLU盖写对应于所述原始的压缩段的所有CLU,将对应于所述更新的压缩段的所述CLU写入包含在空闲CLU的所述列表中的所述CLU,并且将对应于所述更新的压缩段的其余CLU连续地写入下一个空闲存储位置。
21.如权利要求19所述的方法,其进一步包括:
a)在断开所述存储逻辑单元以前检查空闲CLU的所述列表;
b)如果所述列表不是空的,则在包括在所述压缩段内的CLU中限定具有最高存储位置指针的CLU(第一个CLU);
c)促进将所述压缩数据从所述第一个CLU移动到具有较低存储位置指针的空闲CLU(第二个CLU);
d)将所述第二个CLU分配给有关的压缩段并且将所述第一个CLU分配给空闲CLU的所述列表;
e)重复步骤b)-d)直到包括在压缩段内的所有CLU的所述存储位置指针低于包括在空闲CLU的所述列表中的任一个CLU的指针;
f)更新所述段表。
22.为了用在块模式访问存储协议上,一种读取在至少一个存储逻辑单元中储存为压缩数据的原始数据的方法,其中所述压缩数据被压缩到对应于被虚拟地容纳在虚拟逻辑单元中的原始数据(簇)的固定大小部分的一个或更多压缩段,所述方法包括:
a)确定待读取的第一簇;
b)确定相应的压缩段的序号;
c)促进恢复对应于所述簇的所述数据。
23.如权利要求22所述的方法,其中所述压缩段被分成固定大小的压缩逻辑单元(CLU),所述存储逻辑单元包括保存关于对应于所述压缩段的CLU以及其存储位置的信息的段表,并且待读取的所述数据的所述存储位置通过参考所述段表限定。
24.如权利要求22所述的方法,其进一步包括如果待读取的数据范围超出所恢复的相应簇的大小,则对具有递增了1的序号的接下来的压缩段重复步骤b)和c),直到待读取的所有数据被恢复。
25.为了用在块模式访问存储协议上,一种在给定的范围将数据写入在至少一个存储逻辑单元中储存为压缩数据的数据的方法,其中所述压缩数据被压缩在对应于被虚拟地容纳在虚拟逻辑单元中的原始数据(簇)的固定大小的部分的一个或更多压缩段,所述方法包括:
a)确定待更新的第一簇,从而组成所述原始簇;
b)确定相应的原始压缩段的序号;
c)促进恢复对应于所述原始簇的数据;
d)计算在所述簇内的更新数据的偏移并且促进在所述给定的数据范围的更新;
e)将所述更新的簇压缩至更新的压缩段中;
f)促进用更新的压缩段盖写所述原始的压缩段。
26.如权利要求25所述的方法,其中所述压缩段被分成固定大小的压缩逻辑单元(CLU),所述存储逻辑单元包括保存关于对应于所述压缩段的CLU以及其存储位置的信息的段表,待读取的所述数据的所述存储位置通过参考所述段表被限定,且所述段表在步骤f)之后被更新。
27.如权利要求25所述的方法,其进一步包括如果待写的数据范围超出所恢复的相应簇的大小,则对具有递增了1的序号的接下来的压缩段重复步骤b)至f),直到所有需要的数据被写入。
28.如权利要求25所述的方法,其进一步包括处理在写入数据期间释放的空闲CLU的列表,所述列表被处理直到所述存储逻辑单元断开。
29.如权利要求28所述的方法,其进一步包括比较所述原始段所需要的CLU的数量No与所述更新的压缩段所需要的数量Nu,并且促进下列项之一:
a)如果No=Nu,则用对应于所述更新的压缩段的CLU盖写所有对应于所述原始的压缩段的CLU;
b)如果No>Nu,则用对应于所述更新的压缩段的CLU盖写对应于所述原始的压缩段的前Nu个CLU,并且更新关于释放的CLU的空闲CLU的所述列表;
c)如果No<Nu<No+Nf,则用对应于所述更新的压缩段的CLU盖写所有对应于所述原始的压缩段的CLU,并且将对应于所述更新的压缩段的其余CLU写入包含在空闲CLU的所述列表中的所述CLU,其中Nf是在所述列表中CLU的数量;
d)如果No+Nf<Nu,则用对应于所述更新的压缩段的CLU盖写所有对应于所述原始的压缩段的CLU,将对应于所述更新的压缩段的所述CLU写入包含在空闲CLU的所述列表中的所述CLU,并且将对应于所述更新的压缩段的其余CLU连续地写入下一个空闲存储位置。
30.如权利要求28所述的方法,其进一步包括:
a)在断开所述存储逻辑单元以前检查空闲CLU的所述列表;
b)如果所述列表不是空的,则在包括在所述压缩段内的CLU中限定具有最高存储位置指针的CLU(第一个CLU);
c)促进将所述压缩数据从所述第一个CLU移动到具有较低存储位置指针的空闲CLU(第二个CLU);
d)将所述第二个CLU分配给有关的压缩段并且将所述第一个CLU分配给空闲CLU的所述列表;
e)重复步骤b)-d)直到包括在压缩段内的所有CLU的所述存储位置指针低于包括在空闲CLU的所述列表中的任一个CLU的指针;
f)更新所述段表。
31.如权利要求1、22、25中任一项所述的方法,其中所述块模式访问存储协议从包括SCSI、光纤通道、FCIP、iFCP、iSCSI的组中选择。
32.一种在存储网络中可操作的、配置为执行权利要求1、22、25中任一项的所述方法步骤的通信设备。
33.一种可用至少一个块模式访问存储协议操作的、且配置为执行权利要求1、22、25中任一项的所述方法步骤的存储设备。
34.为了用在块模式访问存储协议上,一种压缩用于存储在至少一个存储逻辑单元中的数据的系统,所述系统包括:
a)用于关于至少一个存储逻辑单元产生可由所述块模式访问协议访问并配置成虚拟地容纳原始数据的相应的虚拟逻辑单元的装置,其中所述虚拟逻辑单元的大小对应于正被压缩的原始数据的估计的大小,实质上等于所述逻辑单元的大小;
b)用于将所述虚拟逻辑单元分割成一个或更多虚拟存储部分(簇)的装置;
c)用于压缩容纳在簇内的所述原始数据并且从而产生要保存在所述存储逻辑单元内的相应压缩段中的压缩数据的装置;
d)用于促进储存在所述压缩段内的所述压缩数据和其在所述虚拟逻辑单元的虚拟容纳之间的映射的装置。
35.如权利要求34所述的系统,其组成在存储网络中可操作的通信设备的一部分。
36.如权利要求34所述的系统,其组成可用至少一个块模式访问存储协议操作的存储设备的一部分。
37.为了用在块模式访问存储协议上,一种由机器可读的程序存储设备,所述程序存储设备可触知地包括由机器可执行的指令程序,以执行产生用于存储在至少一个存储逻辑单元中的压缩数据的方法步骤,所述方法包括:
a)关于至少一个存储逻辑单元产生可由所述块模式访问协议访问并配置成虚拟地容纳原始数据的相应的虚拟逻辑单元,其中所述虚拟逻辑单元的大小对应于正被压缩的估计的原始数据的大小,实质上等于所述逻辑单元的大小;
b)将所述虚拟逻辑单元分割成一个或更多虚拟存储部分(簇);
c)压缩容纳在簇内的所述原始数据并且从而产生要储存在所述存储逻辑单元内的相应压缩段内的压缩数据;
d)促进储存在所述压缩段内的所述压缩数据和其在所述虚拟逻辑单元的虚拟容纳之间的映射。
38.为了用在块模式访问存储协议上,一种包括计算机可用媒介的计算机程序产品,所述计算机可用媒介具有包含在其内的产生用于存储在至少一个存储逻辑单元中的压缩数据的计算机可读程序代码,所述计算机程序产品包括:
a)用于使计算机关于至少一个存储逻辑单元产生可由所述块模式访问存储协议访问并且配置成虚拟地容纳原始数据的相应的虚拟逻辑单元的计算机可读程序代码,其中所述虚拟逻辑单元的大小对应于正被压缩的估计的原始数据的大小,实质上等于所述存储逻辑单元的大小;
b)用于使计算机将所述虚拟逻辑单元分割成一个或更多虚拟存储部分(簇)的计算机可读程序代码;
c)用于使计算机压缩容纳在簇内的所述原始数据并且从而产生要储存在所述存储逻辑单元内的相应压缩段中的压缩数据的计算机可读程序代码;
d)用于使计算机促进储存在所述压缩段中的所述压缩数据和其在所述虚拟逻辑单元的虚拟容纳之间映射的计算机可读程序代码。
CNA2006800491577A 2005-10-26 2006-10-11 用于块模式访问存储的数据压缩的方法和系统 Pending CN101346883A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/258,379 US7424482B2 (en) 2004-04-26 2005-10-26 Method and system for compression of data for block mode access storage
US11/258,379 2005-10-26
US11/400,381 2006-04-10

Publications (1)

Publication Number Publication Date
CN101346883A true CN101346883A (zh) 2009-01-14

Family

ID=40248022

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800491577A Pending CN101346883A (zh) 2005-10-26 2006-10-11 用于块模式访问存储的数据压缩的方法和系统

Country Status (3)

Country Link
US (4) US8473652B2 (zh)
CN (1) CN101346883A (zh)
IL (2) IL191082A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841337A (zh) * 2010-05-06 2010-09-22 华为终端有限公司 数据压缩和解压缩处理方法以及移动存储设备
CN103309621A (zh) * 2012-12-12 2013-09-18 珠海金山网络游戏科技有限公司 读取分段压缩包中数据的方法
CN107247562A (zh) * 2017-06-30 2017-10-13 郑州云海信息技术有限公司 一种压缩优化方法及其装置
CN108108311A (zh) * 2013-12-12 2018-06-01 株式会社日立制作所 存储装置及存储装置的控制方法
CN108804021A (zh) * 2017-05-05 2018-11-13 捷鼎创新股份有限公司 数据压缩装置及其数据压缩方法
CN112162957A (zh) * 2020-10-13 2021-01-01 中国空气动力研究与发展中心计算空气动力研究所 多块结构网格数据压缩存储方法、解压缩方法及装置

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US20100070466A1 (en) 2008-09-15 2010-03-18 Anand Prahlad Data transfer techniques within data storage devices, such as network attached storage performing data migration
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
DK2622469T3 (da) 2010-09-30 2020-02-17 Commvault Systems Inc Effektive datastyringsforbedringer, så som docking af datastyringsmoduler med begrænset funktion til et komplet datastyringssystem
US9244779B2 (en) 2010-09-30 2016-01-26 Commvault Systems, Inc. Data recovery operations, such as recovery from modified network data management protocol data
US9852143B2 (en) * 2010-12-17 2017-12-26 Microsoft Technology Licensing, Llc Enabling random access within objects in zip archives
US9116633B2 (en) 2011-09-30 2015-08-25 Commvault Systems, Inc. Information management of virtual machines having mapped storage devices
US9461881B2 (en) 2011-09-30 2016-10-04 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
EP2712450A4 (en) 2012-03-30 2015-09-16 Commvault Systems Inc INFORMATONS MANAGEMENT OF DATA OF MOBILE DEVICES
US20140181046A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Systems and methods to backup unprotected virtual machines
US9223597B2 (en) 2012-12-21 2015-12-29 Commvault Systems, Inc. Archiving virtual machines in a data storage system
US9069799B2 (en) 2012-12-27 2015-06-30 Commvault Systems, Inc. Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system
US9378035B2 (en) 2012-12-28 2016-06-28 Commvault Systems, Inc. Systems and methods for repurposing virtual machines
US9703584B2 (en) 2013-01-08 2017-07-11 Commvault Systems, Inc. Virtual server agent load balancing
US9286336B2 (en) * 2013-03-12 2016-03-15 Sap Se Unified architecture for hybrid database storage using fragments
US10127236B1 (en) * 2013-06-27 2018-11-13 EMC IP Holding Company Filesystem storing file data in larger units than used for metadata
US20150074536A1 (en) 2013-09-12 2015-03-12 Commvault Systems, Inc. File manager integration with virtualization in an information management system, including user control and storage management of virtual machines
US9811427B2 (en) 2014-04-02 2017-11-07 Commvault Systems, Inc. Information management by a media agent in the absence of communications with a storage manager
WO2015183240A1 (en) * 2014-05-27 2015-12-03 Hewlett-Packard Development Company, L.P. Storing compressed data
US20160004715A1 (en) * 2014-07-02 2016-01-07 International Business Machines Corporation Minimizing Metadata Representation In A Compressed Storage System
US20160019317A1 (en) 2014-07-16 2016-01-21 Commvault Systems, Inc. Volume or virtual machine level backup and generating placeholders for virtual machine files
US10776209B2 (en) 2014-11-10 2020-09-15 Commvault Systems, Inc. Cross-platform virtual machine backup and replication
US9983936B2 (en) 2014-11-20 2018-05-29 Commvault Systems, Inc. Virtual machine change block tracking
US9928144B2 (en) 2015-03-30 2018-03-27 Commvault Systems, Inc. Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage
US9916338B2 (en) 2015-04-24 2018-03-13 International Business Machines Corporation Managing data records
US10084873B2 (en) 2015-06-19 2018-09-25 Commvault Systems, Inc. Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs
US9563514B2 (en) 2015-06-19 2017-02-07 Commvault Systems, Inc. Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs
CN105049769B (zh) * 2015-08-26 2018-06-05 浙江宇视科技有限公司 一种iSCSI块直存支持录像空间变更的方法和装置
US10101913B2 (en) 2015-09-02 2018-10-16 Commvault Systems, Inc. Migrating data to disk without interrupting running backup operations
US10812582B2 (en) * 2016-03-10 2020-10-20 Vmware, Inc. Management of applications across nodes using exo-clones
US10585856B1 (en) * 2016-06-28 2020-03-10 EMC IP Holding Company LLC Utilizing data access patterns to determine compression block size in data storage systems
US10417102B2 (en) 2016-09-30 2019-09-17 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic
US10725965B1 (en) * 2016-09-30 2020-07-28 EMC IP Holding Company LLC Systems and methods for managing copy creation and deletion
US10162528B2 (en) 2016-10-25 2018-12-25 Commvault Systems, Inc. Targeted snapshot based on virtual machine location
US10678758B2 (en) 2016-11-21 2020-06-09 Commvault Systems, Inc. Cross-platform virtual machine data and memory backup and replication
US10949308B2 (en) 2017-03-15 2021-03-16 Commvault Systems, Inc. Application aware backup of virtual machines
US10896100B2 (en) 2017-03-24 2021-01-19 Commvault Systems, Inc. Buffered virtual machine replication
US10387073B2 (en) 2017-03-29 2019-08-20 Commvault Systems, Inc. External dynamic virtual machine synchronization
US10853195B2 (en) 2017-03-31 2020-12-01 Commvault Systems, Inc. Granular restoration of virtual machine application data
US11526469B1 (en) * 2017-07-31 2022-12-13 EMC IP Holding Company LLC File system reorganization in the presence of inline compression
JP7013732B2 (ja) * 2017-08-31 2022-02-01 富士通株式会社 情報処理装置、情報処理方法及びプログラム
US10742735B2 (en) 2017-12-12 2020-08-11 Commvault Systems, Inc. Enhanced network attached storage (NAS) services interfacing to cloud storage
CN108256352B (zh) * 2018-01-15 2021-10-22 北京安博通科技股份有限公司 一种web防护特征库自动打包的方法、装置及终端
US10877928B2 (en) 2018-03-07 2020-12-29 Commvault Systems, Inc. Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations
US11200124B2 (en) 2018-12-06 2021-12-14 Commvault Systems, Inc. Assigning backup resources based on failover of partnered data storage servers in a data storage management system
US10768971B2 (en) 2019-01-30 2020-09-08 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data
US11467753B2 (en) 2020-02-14 2022-10-11 Commvault Systems, Inc. On-demand restore of virtual machine data
US11442768B2 (en) 2020-03-12 2022-09-13 Commvault Systems, Inc. Cross-hypervisor live recovery of virtual machines
US11099956B1 (en) 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations
US11500669B2 (en) 2020-05-15 2022-11-15 Commvault Systems, Inc. Live recovery of virtual machines in a public cloud computing environment
US11656951B2 (en) 2020-10-28 2023-05-23 Commvault Systems, Inc. Data loss vulnerability detection
US11681659B2 (en) * 2021-05-21 2023-06-20 Red Hat, Inc. Hybrid file compression model
US20230004533A1 (en) * 2021-07-01 2023-01-05 Microsoft Technology Licensing, Llc Hybrid intermediate stream format
US11971857B2 (en) * 2021-12-08 2024-04-30 Cohesity, Inc. Adaptively providing uncompressed and compressed data chunks
US20230325354A1 (en) * 2022-04-12 2023-10-12 Dell Products L.P. Hyperparameter optimization in file compression using sequence alignment
US11977517B2 (en) 2022-04-12 2024-05-07 Dell Products L.P. Warm start file compression using sequence alignment
CN116339622B (zh) * 2023-02-20 2023-11-14 深圳市数存科技有限公司 一种基于块级的数据压缩系统及方法

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481701A (en) 1991-09-13 1996-01-02 Salient Software, Inc. Method and apparatus for performing direct read of compressed data file
US5305295A (en) 1992-06-29 1994-04-19 Apple Computer, Inc. Efficient method and apparatus for access and storage of compressed data
US5649151A (en) * 1992-06-29 1997-07-15 Apple Computer, Inc. Efficient method and apparatus for access and storage of compressed data
US5991753A (en) * 1993-06-16 1999-11-23 Lachman Technology, Inc. Method and system for computer file management, including file migration, special handling, and associating extended attributes with files
WO1995018997A2 (en) 1993-12-30 1995-07-13 Connectix Corporation Virtual memory management system and method using data compression
US6349375B1 (en) * 1994-02-02 2002-02-19 Compaq Computer Corporation Compression of data in read only storage and embedded systems
US5488365A (en) * 1994-03-01 1996-01-30 Hewlett-Packard Company Method and apparatus for compressing and decompressing short blocks of data
CN1157653C (zh) 1994-04-22 2004-07-14 索尼公司 数据传输和接收装置及方法和数据记录和再现装置及方法
US5668970A (en) 1994-06-20 1997-09-16 Cd Rom, U.S.A., Inc. Method and apparatus for generating a file allocation table for a storage medium with no file allocation table using file storage information
US5574906A (en) 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
JP2831602B2 (ja) 1995-01-13 1998-12-02 富士通株式会社 圧縮データ管理装置及び圧縮データ管理方法
JP3509285B2 (ja) 1995-05-12 2004-03-22 富士通株式会社 圧縮データ管理方式
US5778411A (en) 1995-05-16 1998-07-07 Symbios, Inc. Method for virtual to physical mapping in a mapped compressed virtual storage subsystem
US5809295A (en) 1995-09-26 1998-09-15 Microsoft Corporation Method and apparatus for storing compressed file data on a disk where each MDFAT data structure includes an extra byte
US6577734B1 (en) * 1995-10-31 2003-06-10 Lucent Technologies Inc. Data encryption key management system
US5765173A (en) * 1996-01-11 1998-06-09 Connected Corporation High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list
US5774715A (en) * 1996-03-27 1998-06-30 Sun Microsystems, Inc. File system level compression using holes
US5907703A (en) 1996-05-08 1999-05-25 Mijenix Corporation Device driver for accessing computer files
US5761536A (en) 1996-08-21 1998-06-02 International Business Machines Corporation System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis
US6112024A (en) 1996-10-02 2000-08-29 Sybase, Inc. Development system providing methods for managing different versions of objects with a meta model
US6115787A (en) * 1996-11-05 2000-09-05 Hitachi, Ltd. Disc storage system having cache memory which stores compressed data
US6092071A (en) * 1997-11-04 2000-07-18 International Business Machines Corporation Dedicated input/output processor method and apparatus for access and storage of compressed data
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6145069A (en) 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
FI991261A (fi) 1999-06-02 2000-12-03 Nokia Networks Oy Trie-rakenteeseen perustuva funktionaalinen muisti
AU7735600A (en) * 1999-10-01 2001-05-10 Infraworks Corporation Port blocking method and system
US6532121B1 (en) 1999-10-25 2003-03-11 Hewlett-Packard Company Compression algorithm with embedded meta-data for partial record operation augmented with expansion joints
JP4424845B2 (ja) 1999-12-20 2010-03-03 本田 正 イメージデータ圧縮方法及び復元方法
US6728785B1 (en) 2000-06-23 2004-04-27 Cloudshield Technologies, Inc. System and method for dynamic compression of data
WO2002039306A1 (en) 2000-11-09 2002-05-16 Sri International Systems and methods for negotiated resource utilization
US20020107988A1 (en) 2001-02-05 2002-08-08 James Jordan In-line compression system for low-bandwidth client-server data link
US8402005B2 (en) * 2001-03-27 2013-03-19 Intel Corporation Systems and methods for creating self-extracting files
AU2002313583A1 (en) * 2001-08-01 2003-02-17 Actona Technologies Ltd. Virtual file-sharing network
US6678828B1 (en) 2002-07-22 2004-01-13 Vormetric, Inc. Secure network file access control system
US7958289B2 (en) * 2002-08-08 2011-06-07 International Business Machines Corporation Method and system for storing memory compressed data onto memory compressed disks
US7058783B2 (en) * 2002-09-18 2006-06-06 Oracle International Corporation Method and mechanism for on-line data compression and in-place updates
US7228925B2 (en) * 2002-10-04 2007-06-12 Tesla Capital, Llc Electrical systems for electric powered vehicles
US20050033988A1 (en) * 2002-10-18 2005-02-10 Neoscale Systems, Inc. Method and system for transparent encryption and authentication of file data protocols over internet protocol
US7536418B2 (en) * 2003-01-10 2009-05-19 At&T Intellectual Property Ii, Lp Preload library for transparent file transformation
JP4131514B2 (ja) * 2003-04-21 2008-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、サーバ、データ処理方法及びプログラム
US7117204B2 (en) 2003-12-03 2006-10-03 International Business Machines Corporation Transparent content addressable data storage and compression for a file system
US20060098031A1 (en) * 2004-10-26 2006-05-11 Lai Jimmy K L System and method for effectively performing image rotation procedures in a compressed domain
US7545382B1 (en) * 2006-03-29 2009-06-09 Nvidia Corporation Apparatus, system, and method for using page table entries in a graphics system to provide storage format information for address translation
US8037279B2 (en) * 2008-06-12 2011-10-11 Oracle America, Inc. Method and system for cross-domain data sharing

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841337A (zh) * 2010-05-06 2010-09-22 华为终端有限公司 数据压缩和解压缩处理方法以及移动存储设备
CN101841337B (zh) * 2010-05-06 2013-04-24 华为终端有限公司 数据压缩和解压缩处理方法以及移动存储设备
CN103309621A (zh) * 2012-12-12 2013-09-18 珠海金山网络游戏科技有限公司 读取分段压缩包中数据的方法
CN108108311A (zh) * 2013-12-12 2018-06-01 株式会社日立制作所 存储装置及存储装置的控制方法
CN108804021A (zh) * 2017-05-05 2018-11-13 捷鼎创新股份有限公司 数据压缩装置及其数据压缩方法
CN108804021B (zh) * 2017-05-05 2021-12-17 上海川源信息科技有限公司 数据压缩装置及其数据压缩方法
CN107247562A (zh) * 2017-06-30 2017-10-13 郑州云海信息技术有限公司 一种压缩优化方法及其装置
CN107247562B (zh) * 2017-06-30 2020-03-06 郑州云海信息技术有限公司 一种压缩优化方法及其装置
CN112162957A (zh) * 2020-10-13 2021-01-01 中国空气动力研究与发展中心计算空气动力研究所 多块结构网格数据压缩存储方法、解压缩方法及装置
CN112162957B (zh) * 2020-10-13 2022-05-27 中国空气动力研究与发展中心计算空气动力研究所 多块结构网格数据压缩存储方法、解压缩方法及装置

Also Published As

Publication number Publication date
US20120265740A1 (en) 2012-10-18
US8677039B2 (en) 2014-03-18
IL191082A (en) 2013-07-31
US20110218970A1 (en) 2011-09-08
US20110218975A1 (en) 2011-09-08
IL191083A0 (en) 2008-12-29
US8285898B2 (en) 2012-10-09
IL191082A0 (en) 2008-12-29
US20110219144A1 (en) 2011-09-08
US8656075B2 (en) 2014-02-18
US8473652B2 (en) 2013-06-25

Similar Documents

Publication Publication Date Title
CN101346883A (zh) 用于块模式访问存储的数据压缩的方法和系统
US7970965B2 (en) Method and system for compression of data for block mode access storage
CA2564844C (en) Method and system for compression of files for storage and operation on compressed files
US8327050B2 (en) Systems and methods for compressing files for storage and operation on compressed files
US20060190643A1 (en) Method and system for compression of data for block mode access storage
US8554745B2 (en) Nearstore compression of data in a storage system
US7818532B2 (en) Method and system for creating and restoring an image file
US20060230014A1 (en) Method and system for compression of files for storage and operation on compressed files
ZA200608760B (en) Method and system for compression of files for storage and operation on compressed files

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090114