《通过指示符在数据重复消除系统中保留冗余.pdf》由会员分享,可在线阅读,更多相关《通过指示符在数据重复消除系统中保留冗余.pdf(16页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104246774A43申请公布日20141224CN104246774A21申请号201380021287X22申请日2013010813/453,25220120423USG06F17/3020060171申请人国际商业机器公司地址美国纽约阿芒克72发明人RM费斯科CE琼斯S罗伊74专利代理机构北京市金杜律师事务所11256代理人酆迅黄倩54发明名称通过指示符在数据重复消除系统中保留冗余57摘要提供了用于在计算环境中的数据重复消除系统中保留数据冗余的各种实施例。在一个实施例中,公开了一种用于这样的保留的方法。配置了一种指示符。该指示符提供有经选择的数据段,其将被通过数据重。
2、复消除系统写入,以指定经选择的数据段必须不进行重复消除操作,使得不论是否相同,重复数据均可以被写入存储到物理位置上。30优先权数据85PCT国际申请进入国家阶段日2014102286PCT国际申请的申请数据PCT/CN2013/0701802013010887PCT国际申请的公布数据WO2013/159578EN2013103151INTCL权利要求书2页说明书8页附图5页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书8页附图5页10申请公布号CN104246774ACN104246774A1/2页21一种由处理器在计算环境中将数据冗余保留在数据重复消除系统中的方法,包括。
3、配置指示符,所述指示符被提供有经选择的数据段,所述经选择的数据段将被通过所述数据重复消除系统来写入,以指定所述经选择的数据段必须不进行重复消除操作。2根据权利要求1所述的方法,进一步包括处理所述指示符,使得阻止对所述经选择的数据段执行所述重复消除操作。3根据权利要求2所述的方法,其中处理所述指示符包括准备将被提供到所述计算环境中的存储控制器的包含所述指示符的命令。4根据权利要求3所述的方法,其中处理所述指示符包括由所述存储控制器接收所述命令,绕过至少一个重复消除操作,以及将所述经选择的数据段直接写入到新的物理存储位置。5根据权利要求1所述的方法,其中配置指示符进一步包括对于可操作在所述计算环境。
4、中的应用,向系统调用提供扩展的属性,所述扩展的属性指示尽管所述经选择的数据段与先前写入到物理存储器的数据匹配,所述经选择的数据段也必须被写入到所述物理存储器。6根据权利要求1所述的方法,其中,所述经选择的数据段是需要被重复存储在物理存储上的文件系统元数据和超级块中的至少一个,并且配置指示符包括配置比特和标记中的至少一个。7一种用于在计算环境中将数据冗余保留在数据重复消除系统中的系统,包括文件系统模块;以及存储控制器,所述存储控制器与所述文件系统模块可操作地通信,其中所述文件系统模块被适配用于配置指示符,所述指示符提供有经选择的数据段,所述经选择的数据段将被通过所述数据重复消除系统来写入,以指定。
5、所述经选择的数据段必须不进行重复消除操作。8根据权利要求7所述的系统,其中所述存储控制器被适配用于处理所述指示符,使得阻止对所述经选择的数据段执行所述重复消除操作。9根据权利要求8所述的系统,进一步包括存储驱动器,所述存储驱动器在所述文件系统模块和所述存储控制器之间可操作地通信,其中所述存储驱动器进一步被适配用于根据处理所述指示符,准备将被提供到所述存储控制器的包含所述指示符的命令。10根据权利要求9所述的系统,其中所述存储控制器进一步被适配用于根据处理所述指示符接收所述命令,绕过至少一个重复消除操作,以及将所述经选择的数据段直接写入到新的物理存储位置。11根据权利要求7所述的系统,进一步包括。
6、可操作地与所述文件系统模块通信的应用,其中所述应用被适配用于向系统调用提供扩展的属性,所述扩展的属性指示尽管所述经选择的数据段与先前写入到物理存储器的数据匹配,所述经选择的数据段也必须被写入到所述物理存储器。12根据权利要求7所述的系统,其中所述经选择的数据段是需要被重复存储在物理权利要求书CN104246774A2/2页3存储上的文件系统元数据和超级块中的至少一个。13根据权利要求7所述的系统,其中所述指示符包括比特和标记中的至少一个。14根据权利要求13所述的系统,其中所述比特和所述标记中的所述至少一个使用适配的小型计算机系统接口SCSI写入命令与所述经选择的数据段相关联。15一种通过处理。
7、器在计算环境中将数据冗余保留在数据重复消除系统中的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有存储于其中的计算机可读程序代码部分,所述计算机程序代码部分包括第一可执行部分,用于配置指示符,所述指示符提供有经选择的数据段,所述经选择的数据段将被通过所述数据重复消除系统来写入,以指定所述经选择的数据段必须不进行重复消除操作。16根据权利要求15所述的计算机程序产品,进一步包括第二可执行部分,用于处理所述指示符,使得阻止对所述经选择的数据段执行所述重复消除操作。17根据权利要求16所述的计算机程序产品,进一步包括第三可执行部分,用于根据处理所述指示符,准备将被。
8、提供到所述计算环境中的存储控制器的包含所述指示符的命令。18根据权利要求17所述的计算机程序产品,进一步包括第四可执行部分,用于根据处理所述指示符由所述存储控制器接收所述命令,绕过至少一个重复消除操作,以及将所述经选择的数据段直接写入到新的物理存储位置。19根据权利要求15所述的计算机程序产品,进一步包括第二可执行部分,用于根据配置指示符,对于可操作在所述计算环境中的应用,向系统调用提供扩展的属性,所述扩展的属性指示尽管所述经选择的数据段与先前写入到物理存储器的数据匹配,所述经选择的数据段也必须被写入到所述物理存储器。20根据权利要求15所述的计算机程序产品,其中,所述经选择的数据段是需要被重。
9、复存储在物理存储中的文件系统元数据和超级块中的至少一个,并且进一步包括第二可执行部分,用于根据配置指示符来配置比特和标记中的至少一个。权利要求书CN104246774A1/8页4通过指示符在数据重复消除系统中保留冗余技术领域0001本发明一般地涉及计算机,并且更具体地,涉及用于在包含数据重复消除系统的计算环境中保留冗余和其他数据安全特性的方法、系统和计算机程序产品。背景技术0002计算机和计算机系统在当今社会中的各种设置中被发现。计算环境和网络可以在家中、在工作、在学校、在政府和其他场景中被发现。计算环境逐渐将数据存储在一个或多个存储环境中,这在许多情况下远离对用户呈现的本地接口。0003这些。
10、计算存储环境可以使用通常协作工作的诸如磁盘驱动的许多存储设备,以存储、检索和更新大量数据,然后可以将其提供给请求或发送数据的主机计算机。在一些情况下,很多数据存储子系统作为单个数据存储系统被集中进行管理。这些子系统可以由主机“系统综合体SYSPLEX”系统复杂SYSTEMCOMPLEX配置来管理,该配置组合若干处理单元或处理单元的集群。以该方式,通常包括多种类型的存储设备的多层/多系统的计算环境可以用于组织和处理大量数据。发明内容0004许多多层/多系统的计算环境实现数据重复消除技术以通过减少跨存储设备的重复的存储来提高存储性能。数据重复消除系统被越来越多地使用,因为其有助于减少存储数据所需要。
11、的物理存储的总量。该减小是通过确保重复数据不会被多次存储来完成的。替代地,例如,如果进入应用写入数据块与已经存储的数据块匹配,则对原始数据的指针被存储在虚拟存储映射中,而不是分配新的物理存储空间用于新的数据块。0005然而,在某些情况下,重复消除的行为,即重复数据的单个实例化,可能不利于例如所主控的应用的冗余要求或存储策略或其他要求。需要一种机制,由此保障需要被存储多次的数据,而通过对不具有这样的要求的剩余数据进行重复消除来不减少重复消除系统的优点。0006鉴于上述,公开了用于在数据重复消除系统中保留数据冗余的各种实施例。在一个实施例中,仅作为示例的方式,公开了一种用于这样的保留的方法。配置了。
12、一种指示符。该指示符被提供有经选择的数据段,该经选择的数据段将被通过数据重复消除系统来写入,以指定该经选择的数据段必须不进行重复消除操作。0007除了上述的示例性实施例,各种系统和计算机程序实施例被提供并且提供相关的优点。附图说明0008为了使本发明的优点容易理解,以上简要描述的本发明的更具体的描述将通过参考在附图中图示的具体实施例来呈现。可以理解,这些附图仅描绘了本发明的典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图来以附加特征和细节描述和说明本说明书CN104246774A2/8页5发明,在附图中0009图1是图示可以实现本发明的各方面的示例性计算环境的框图;0010图2是示。
13、出也可以实现本发明的各方面的数据存储系统的硬件结构的框图;0011图3是可以实现本发明的各方面的示例性写入请求;0012图4是也可以实现本发明的各方面的通过数据重复消除引擎写入数据的示例性过程的框图;0013图5是根据本发明的用于确保数据重复消除系统中的冗余的示例性方法;以及0014图6是可以实现本发明的各方面的用于处理数据的示例性方法。具体实施方式0015存储控制器中的数据重复消除通常在应用的“幕后”工作,并且当违反应用的需要执行重复消除操作时,有时可能违反应用的兴趣来进行操作。如果应用写入相同数据的多个副本,并且期望保留多个物理副本,而重复消除子系统重复消除引擎发现这些匹配副本并且在存储数。
14、据的同时终止重复消除该副本,则该情况可能出现。这可能不利于期望在各种位置找到多个副本的应用,并且使得存储系统相信它已经这样做,但是实际上,仅仅已写入了该数据的单个副本。0016考虑下述示例。文件系统通常喜欢在虚拟磁盘上写入“超级块”的多个物理副本或描述基于块的存储设备上的文件系统的元数据段或其他元数据信息以确保冗余。因为超级块的内容是相同的,所以数据重复消除将导致保留超级块单个物理副本和对相同物理块的指示多个虚拟地址。该情况是非常不适当的,因为超级块的物理副本上的单个块的丢失可能使得文件系统完全不可用,因为不存在该超级块的冗余副本。传统地,没有在数据重复消除系统中直接解决该问题的现有方法。00。
15、17各种间接方法可以用于尝试解决该问题。在一个示例中,可以使数据重复消除子系统从其分离出物理存储的存储池产生镜像MIRROR即,包含相同数据的2个或3个副本。因此,不论重复消除如何,都可以创建多个冗余副本。然而,由于下述原因而导致这对应用的保护是不充分的。首先,应用可能希望保持例如同一数据的十10个副本。然而,如果使存储池双向产生镜像,则可能仅保留最多两个2副本。第二,因为数据重复消除分离出跨大量存储和多个文件系统的物理存储池,所以多个应用和文件系统很可能共享相同的物理存储池。因此,数据的一些关键的副本如超级块能够物理地位于同一磁盘上。因为重复消除将防止同一数据的多个副本被写入到多个物理位置,。
16、所以关键数据的副本的数目减少,并且其可能针对多个文件系统位于同一物理磁盘上。这增加了单个故障成为致命的风险。0018所示的实施例提供了用于解决前述问题的多种机制。这些机制中的一个目的是确保存储控制器或其可以位于的任何位置的重复消除子系统平衡减少数据副本的数目的优点与对物理分配关键数据的多个副本的应用要求。下述实施例中描述的方法中的每一个可以在各种情况中使用,并且可以具有特定于该情况的伴随优点。0019在一个这样的实施例中,可以由应用向目标存储控制器系统提供用于经选择的数据段的指示符,以指定具体的数据段不进行重复消除操作。然后,该动作强制存储控制器为指定的数据块分配新的物理存储。一个这样的指示符。
17、可以包括比特,根据是否应该对经选说明书CN104246774A3/8页6择的数据段/块执行期望的重复消除而将该比特设置为高或低。0020鉴于上述实施例,通过允许应用指示写入是否必须被重复消除,允许应用实现与其生成的数据相关联的存储策略的灵活性。这样,对于确定经选择的数据即使是相同的是否仍然必须位于独立的物理位置,应用比重复消除系统处于更好的位置。此外,存储控制器或其他存储管理设备继续执行其通过重复消除的数据减少的作用,并且同时允许对应用的足够控制以在需要时取消重复消除。0021通过向写入命令提供指示符,该指示符用于向存储控制器或还有其他存储管理设备指示经选择的数据是否必须跳过重复消除,由此对应。
18、用提供非常细粒度的控制,在仍然保留重复消除功能的优点并且保留用于关键数据的冗余的同时,允许实现灵活性。0022在以下描述中,参考形成本说明书的一部分并且图示本发明的若干实施例的附图。应当理解,可以利用其他实施例,并且在不脱离本发明的精神和范围的情况下可以进行结构和操作改变。0023转到图1,描述了可以实现本发明的各方面的示例性计算机系统10。计算机系统10包括中央处理单元CPU12,其连接到大容量存储设备14和存储器设备16。大容量存储设备可以包括硬盘驱动HDD设备,其可以以各个磁盘的冗余阵列RAID来配置。可以入下述实现本发明的各方面的数据管理操作可以在位于系统10中或其他位置的设备14中执。
19、行。存储器设备16可以包括诸如电可擦除可编程只读存储器EEPROM的存储器或相关设备的主机。0024存储器16被示为包括应用程序15以及应用程序17,其中,文件系统19是可操作的。应用15和应用17可以创建、删除或以其他方式管理物理地存储在诸如大容量存储设备14中的数据段,诸如数据分块或数据块。文件系统19通过提供用于存储、检索和更新数据并且管理包含其的设备上的可用空间来提供用于组织期望在应用程序17终止之后保留的数据的装置。文件系统19以有效的方式组织数据,并且被调谐为该设备诸如计算机10和/或存储器16的特定特性。在一个实施例中,应用17可以是操作系统OS17,并且文件系统19保留在OS1。
20、7和文件系统19之间的紧密耦合。文件系统19可以提供用于控制对数据和元数据的访问的机制,并且可以包含用于确保诸如对本发明的其他某些方面的需要的数据可靠性的机制,如本领域普通技术人员将理解的。文件系统19可以提供用于多个应用程序15、17以几乎同时更新同一文件中的数据的装置。0025在图示的实施例中,存储器设备16和大容量存储设备14经由信号承载介质连接到CPU12。此外,CPU12通过通信端口18连接到具有附接的多个附加计算机系统22和24的通信网络20。计算机系统10可以包括一个或多个处理器设备例如,CPU12和额外的存储器设备16,以使计算机系统10的每个独立组件实现和执行本文所述的每个操。
21、作以实现本发明的目的。0026图2是示出根据本发明的计算机系统中的数据存储系统的硬件结构的示例性框图200。示出了主机计算机210、220、225,每一个用作作为数据存储系统200的一部分的用于执行数据处理的中央处理单元。主机物理或虚拟设备210、220和225可以是在数据存储系统200中实现本发明的目的的一个或多个新的物理设备或逻辑设备。在一个实施例中,仅通过示例的方式,数据存储系统200可以被实现为系统存储TMDS8000TM。网络连接260可以是光纤信道结构、光纤信道点对点链路、通过以太网结构或点对点链路的光说明书CN104246774A4/8页7纤信道、FICON或ESCONI/O接口。
22、、任何其他I/O接口类型、无线网络、有线网络、LAN、WAN、异构、同构、公共即因特网、私有或其任意组合。主机210、220和225可以是本地的或在一个或多个位置中分布,并且可以对存储控制器240配备有任何类型的结构或结构信道图2中未示出或网络适配器260,诸如光纤信道、FICON、ESCON、以太网、光纤、无线或同轴电缆适配器。数据存储系统200相应地配备有适当的结构图2中未示出或网络适配器260以进行通信。数据存储系统200在图2中被描绘为包括存储控制器240和存储230。0027为了促进更清楚地理解本文描述的方法,存储控制器240在图2中被示出为单个处理单元,包括微处理器242、系统存储。
23、器243和非易失性存储器“NVS”216,这将在下文中更详细地描述。注意,在一些实施例中,存储控制器240包括多个处理单元,每一个都具有自己的处理器复杂和系统存储器,并且通过专用网络在数据存储系统200内互连。存储230可以包括通过存储网络连接到存储控制器240的一个或多个存储设备,诸如存储阵列。0028在一些实施例中,包括在存储230中的设备可以以循环架构来连接。存储控制器240管理存储230,并且促进期望用于存储230的写入和读出请求的处理。存储控制器240的系统存储器243存储处理器242可以访问以执行与管理存储230相关联的功能的程序指令和数据。在一个实施例中,系统存储器243包括操作。
24、软件250、关联于操作软件250或与操作软件250进行通信,并且部分地配置用于实现本发明的功能。如图2中所示,系统存储器243还可以包括或者与用于存储230的高速缓存245在此也称为“高速缓存存储器”进行通信,用于缓存“写入数据”和“读取数据”,其分别称为写入/读取请求及其相关联的数据。在一个实施例中,高速缓存245被分配在系统存储器243外部的设备中,但是保持可由微处理器242访问,并且可以用于提供除了执行本文描述的操作之外的针对数据丢失的附加的安全性。0029在一些实施例中,高速缓存245是利用易失性存储器和非易失性存储器来实现的,并且经由本地总线图2中未示出耦合到微处理器242以增强数据。
25、存储系统200的性能。包括在数据存储控制器中的NVS216可由微处理器242访问,并且用于提供对在其他附图中描述的本发明的操作和执行的附加支持。NVS216,也可以被称为“持久”高速缓存或“高速缓存存储器”,并且通过可以或可以不利用外部电力来保持其中存储的数据的非易失性存储器来实现。出于适用于实现本发明的目的的任何目的,NVS可以被存储在高速缓存245中并且具有高速缓存245。在一些实施例中,诸如电池的备用电源图2中未示出向NVS216供应具有足够的电力以在数据存储系统200电力损耗的情况下保持存储在其中的数据。在某些实施例中,NVS216的容量小于或等于高速缓存245的总容量。0030存储2。
26、30可以在物理上包括诸如存储阵列的一个或多个存储设。存储阵列是诸如硬盘的各个存储设备的逻辑分组。在某些实施例中,存储230包括JBOD简单磁盘捆绑阵列或RAID独立磁盘冗余阵列阵列。物理存储阵列的集合可以被进一步组合以形成队列RANK,其使物理存储与逻辑配置解关联。队列中的存储空间可以被分配到逻辑卷,其定义在读取/写入请求中指定的存储位置。0031在一个实施例中,仅通过示例的方式,图2中所示的存储系统可以包括逻辑卷,或仅“卷”,可以具有不同类型的分配。存储230A、230B和230N被示为数据存储系统200中的队列,并且在本文中被称为队列230A、230B和230N。队列对于数据存储系统200。
27、可以是说明书CN104246774A5/8页8本地的,或者可以位于物理上远离的位置。换言之,本地存储器控制器可以与远程存储控制器连接,并且管理远程位置处的存储。队列230A被示出为配置有两个完整的卷234和236以及一个部分卷232A。队列230B被示出为具有另一部分卷232B。因此,卷232跨越队列230A和230B分配。队列230N被示出为被完全分配给卷238即,队列230N是指用于卷238的完整物理存储。从以上示例可以理解,队列可以被配置为包括一个或多个部分和/或完整卷。卷和队列可以进一步被划分成表示存储的固定块的所谓的“轨道TRACK”。因此,轨道与给定卷相关联,并且可以被给予给定队列。
28、。0032存储控制器240包括用于控制对主机计算机210、220、225的光纤信道协议的控制交换机241,用于控制所有存储控制器240的微处理器242,用于存储用于控制存储控制器240的操作的微程序操作软件250、用于控制的数据和稍后描述的每个表的非易失性控制存储243,用于临时存储缓存数据的高速缓存245以及用于辅助高速缓存245读取和写入数据的缓冲区244,用于控制用于控制去往或来自存储设备230的数据传输的协议的控制交换机241,以及压缩操作模块255和其中可以设置信息的压缩操作列表模块257。多个缓冲区244可以通过本发明实现以有助于本文描述的操作。0033在一个实施例中,主机计算机或。
29、一个或多个物理或虚拟设备210、220、225以及存储控制器240通过作为接口的网络适配器这可能是光纤信道260来连接,即,经由称为“结构”的至少一个交换机来连接。在一个实施例中,将描述图2中所示的系统的操作。微处理器242可以控制存储器243以存储来自主机设备物理或虚拟210的命令信息、以及用于标识主机设备物理或虚拟210的信息。控制交换机241、缓冲区244、高速缓存245、操作软件250、微处理器242、存储器243、NVS216、压缩操作模块255和压缩操作列表模块257彼此进行通信,并且可以是单独的或一种独立的组件。而且,若干在不是所有的组件时诸如操作软件250可以由存储器243包括。
30、。示出的设备内的组件中的每一个可以出于适用于本发明的目的地而关联在一起并且可以彼此通信。0034存储控制器240被示出为包括数据重复消除引擎255,其中处理多个写入请求259。数据重复消除引擎255在结构上可以是一个完整的模块或者可以关联于和/或包含在其他独立模块内。数据重复消除引擎255被配置用于结合诸如微处理器242的存储控制器240的其他组件来对通过存储控制器240传递到存储230的写入数据执行数据重复消除操作。0035正前所示,存储控制器240包括高速缓存245或者可以被整体地称为高速缓存系统245接受来自主机210、220和225或类似设备的写入数据,其然后被置于高速缓存存储器245。
31、中。然后,数据重复消除引擎255测试高速缓存存储器245中的重复的写入数据。如图所示,用指示符257指示期望包含不进行重复消除操作的应用17图1的写入请求259。请注意,该指示符被“设置”在写入命中,而不是在要被写入数据即,写入命令净荷中。通过数据重复消除引擎255传递的具有指示符的那些写入请求259向数据重复消除引擎255指定其不进行重复消除操作。0036在一个实施例中,应用17/文件系统19首先确定给定的数据块是否必须在物理存储上被存储多次。这可以是与文件系统19本身相关联的超级块元数据。然后,应用17可以发起对下层磁盘设备驱动器的写入请求259,设置有指示符257诸如高比特,指定即使该块。
32、被确定为是与先前写入的数据块相同,该数据块也必须不被重复消除。说明书CN104246774A6/8页90037在下述步骤中,磁盘驱动器进而准备命令,诸如具有用于向存储控制器240指示“跳过重复消除”的设置比特的小型计算机系统接口SCSI命令。在接收到所指定的数据块时,存储控制器240经由数据重复消除引擎255跳过指纹生成、匹配等的重复消除步骤,如本领域的普通技术人员将理解的那样,并且即使相同数据的更早的实例被存储在存储控制器240上,也将经选择的数据块直接写入到新的物理磁盘位置上。0038在一个实施例中,对于在用户级执行的应用,写入系统调用可以提供有扩展的属性,其指示即使其内容与先前写入到磁盘。
33、的数据匹配,数据块也必须被写入到物理磁盘。如果是这样,则根据例如写入是对块还是对文件接口来以类似于先前描述的方式执行附加的步骤。0039现在转到图3,输入/输出请求的实施例,特别是基于时间的写入命令300可以从主机210图2发送到存储控制器240。在一个实施例中,写入请求300是SCSI命令。图3指示了包括在命令块的32个字节中的每个比特。例如,在字节0中,操作码标识要执行的命令的类型,即,基于时间的写入命令。字节29用于标识数据的第一单元的逻辑块地址LBA。字节1013用于传输长度,其指示从数据的第一单元开始被写入的块的数目等。本领域普通技术人员将认识到,写入命令300中的各种字段和/或这些。
34、字段的各种应用可以根据具体实现而变化。0040在图3中所示的图示实施例中,指示符257被示出为由写入命令300的字节1的比特7组成。以该方式,指示符257可以是低即0或高即1比特,以指示要写入的指定的数据不进行由数据重复消除引擎255再一次图2执行的数据重复消除操作。而且这里,本领域普通技术人员将认识到,其他类似指示符可以适用于写入请求或者结合写入请求和/或写入数据来提供,以指定将要避免重复消除的具体数据部分。0041现在转到图4,本发明的各种功能方面的框图被描绘为示例性流程。具体地,高速缓存系统245被示出为接受要通过数据重复消除引擎255处理的写入数据402作为对高速缓存245的写入操作4。
35、04。当通过数据重复消除引擎255处理写入数据402时,并且如前所述,通常针对现有存储的重复消除来测试写入数据402。然而,因为写入请求259包含指示符257,所以不执行重复消除操作,并且写入数据通过重复消除引擎255传递通过高速缓存系统245并且最终到物理上分配的存储230。0042在替代实施例中出于图示方便的目的而未示出,高速缓存系统245可以位于重复消除引擎255之前。在这种情况下,如果指示符257被设置在写入命令259中,则通过高速缓存245写入对应的数据段。替代地,高速缓存245存储该比特指示符257,使得当该段稍后被清除时,用于给定集合的段的指示符257可用于重复消除引擎255。本。
36、领域普通技术人员将认识到,可以执行对图4中所示的功能方面的其他修改,诸如前示操作流程和布置,以适应具体应用。0043接下来,图5是用于确保具有数据重复消除系统的存储子系统中的数据冗余的示例性方法500,其中可以实现所示实施例的各方面。方法500开始步骤502于将指示符配置为提供有经选择的数据段即,诸如包含在SCSI写入请求中,该经选择的数据段将被通过数据重复消除系统写入以指定该经选择的数据段必须不进行重复消除操作步骤504。然后,方法500结束步骤506。0044接下来,在图6中,图示了用户数据处理的示例性方法600,而且这里,其中可以实说明书CN104246774A7/8页10现本发明的各个。
37、方面。方法600开始步骤602于如前述配置指示符步骤604。在图示的实施例中,在写入请求的上下文中指示符被提供为在SCSI写入命令中的设置比特步骤606。然后,由存储控制器处理该命令步骤608。如果SCSI命令包括用于具体选择的数据的设置比特步骤610,那么阻止对相关数据段执行重复消除操作步骤612,并且相应地,相关联的数据段被直接写入到新分配的物理存储位置步骤614。0045返回到步骤610,如果SCSI命令不包括用于具体选择的数据段的设置比特,则通过在重复消除引擎中的各个重复消除算法来处理相关联的数据段诸如针对先前存储的其他数据段的版本中的重复消除进行检查、以及执行对本领域技术人员显而易见。
38、的其他重复消除功能。然后,方法600结束步骤618。0046所示实施例的机制可以适用于前述写入请求本身,或者在其他实施例中,在经选择的数据本身的上下文中被实现。例如,在一个实施例中,超级块元数据本身可以标记有用于指定不进行数据重复消除操作的信息的指示符。用于结合经选择的数据提供指示的其他技术对于本领域技术人员来说是明显的适用于特定应用。0047所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即完全的硬件实施方式、完全的软件实施方式包括固件、驻留软件、微代码等,或硬件和软件方面结合的实施方式,这里可以统称为“电路”、。
39、“模块”、“工艺”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。0048可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子非穷举的列表包括具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器RAM、只读存储器ROM、可擦式可编程只读存储器EPROM或闪存、光纤、便携式紧凑盘只读。
40、存储器CDROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。0049可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言诸如JAVA、SMALLTALK、C等,还包括常规的过程式程序设计语言诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用。
41、户计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网LAN或广域网WAN连接到用户计算机,或者,可以连接到外部计算机例如利用因特网服务提供商来通过因特网连接。0050下面将参照根据本发明实施例的方法、装置系统和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计说明书CN104246774A108/8页11算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过。
42、计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。0051这些计算机程序指令还可以被存储在可以引导计算机、其他可编程数据处理装置或其他设备来以具体方式进行工作的计算机可读介质中,使得存储在计算机可读介质中的指令产生制造物品,包括实现在流程图和/或框图框或多个框中指定的功能/动作的指令。计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上以使得一系列操作步骤在计算机、其他可编程装置或其他设备上执行以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图框或多个框中指定的功能/。
43、动作的过程。0052附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。0053尽管已经具体图示了本发明的一个或多个实施方式,但是本领域普通技术人员将理解,在不脱离以下权利要求中所阐述的本发明的范围的情况下,可以对实施例进行修改和改编。说明书CN104246774A111/5页12图1说明书附图CN104246774A122/5页13图2说明书附图CN104246774A133/5页14图3说明书附图CN104246774A144/5页15图4说明书附图CN104246774A155/5页16图5图6说明书附图CN104246774A16。