组表格的数据冲洗的制作方法

文档序号:9221631阅读:423来源:国知局
组表格的数据冲洗的制作方法
【专利说明】
【背景技术】
[0001]由于在固态存储技术中的新近的创新,这样的技术正在被集成到数据系统中。数据系统的服务器可以寻求将数据写到固态存储技术或者从固态存储技术读数据。将这样的技术集成到系统中而又维持原子性(atomicity)可能对诸如管理员和/或供应者之类的用户构成挑战。
【附图说明】
[0002]以下详细描述参考附图,其中:
图1是节点将数据冲洗(flush)到非易失性存储器的示例框图;
图2是第一节点将数据冲洗到非易失性存储器并且将所冲洗的数据传送到第二节点的示例框图;
图3是节点由应用服务器共享的示例框图;
图4是包括用于将数据冲洗到非易失性存储器的指令的计算设备的示例框图;以及图5是用于冲洗和传送数据的方法的示例流程图。
【具体实施方式】
[0003]在以下描述中给出了具体细节以提供对实施例的彻底理解。然而,应理解,可以在没有这些具体细节的情况下实行实施例。例如,可以以框图示出系统以便不以不必要的细节使得实施例不清楚。在其他实例中,可以在没有不必要的细节的情况下示出公知过程、结构和技术,以便避免使得实施例不清楚。
[0004]诸如忆阻器(memristor)之类的非易失性存储器(NVM)技术可以提供耐久性和存储器快速访问两者。该类型的NVM可以被映射到服务器存储器空间中用于直接加载/存储访问。当将用于冗余、复制、备份和归档的全方位(full range)丰富数据(rich data)服务应用于存储器映射的存储时,可能需要建立数据的分组,其必须在多个存储器系统之内保持自相一致并且必须跨多个存储器系统保持自相一致。
[0005]存储器一致性一般由处理器和存储器控制器本地管理。虽然现有的方法可以强制实施严格的排序和高速缓存相干性,但是针对诸如那些可能存在于应用服务器和存储服务器之间的群集的、联合的、远程复制和/或客户端/服务器关系,这些方法可能不缩放(scale)。这个的根本原因在于,如在单个处理器或对称多处理器(SMP)系统中可见的严格一致性可能对于在有限的物理范围之上维持是成本过高(cost prohibitive)的。
[0006]当由处理器使用存储指令直接写NVM时,使用同步操作以确保足够的一致性以保证在故障或突然的电力丢失(power loss)的情况下的可恢复性。同步操作通常仅指代存储器位置的单个相连(contiguous)范围。一般地,同步操作涉及到NVM的处理器高速缓存的冲洗。冲洗大量的高速缓存可以花费时间并且减少处理器写性能。可以在诸如盘阵列之类的存储产品之内使用一致性组以确保对块存储(block storage)的远程复制和时间点拷贝操作维持应用级可恢复性。在存储产品中,一致性组可以由多个虚拟卷或逻辑单元编号(LUN)组成。处理器高速缓存冲洗操作以及存储器映射和同步操作可以针对存储器位置的相连范围操作。除了通过没有良好地缩放的精细粒度排序约束的严格跟踪,这些操作可能不计及在存储器位置的不相交(disjoint)范围之间的应用级一致性关联。
[0007]实施例可以在不需要通过在一个或多个组中保留存储器范围的列表的对其接口的改变的情况下扩展同步操作的范围。这些组可以由应用定义以解决(address)它们的具体一致性要求。例如,节点可以包括组表格和控制器。所述组表格可以包括一个或多个组。组中的每个可以与组地址范围相关联。组地址范围可以被映射到NVM的存储器位置。控制器可以接收包括同步地址范围的同步命令并且可以根据由组表格确定的顺序来将数据从高速缓存冲洗到NVM。组表格可以基于同步地址范围是否被包括在组地址范围中的一个中来确定控制器冲洗数据的顺序以及控制器冲洗数据中的哪个中的至少一个。
[0008]在一个实施例中,在包含在同步命令中指定的地址的组中的所有脏的(dirty)高速缓存地址在该同步命令期间被用最后被冲洗的同步命令的指定地址冲洗。在某些实施例中,组可以包含子组。子组中的每个可以由子组地址范围的集合组成,所述子组地址范围的集合是在组中的组地址范围的子集。当驻留在子组之内的地址被同步时,在由该子组指定的子组地址范围中的附加脏地址以及在相同组中、但不在任何子组中的可能的任何其他脏的高速缓存地址也可以被冲洗。因此实施例可以允许例如使得在子组中的元数据在相同组中的其他数据之后一致。
[0009]组和子组可以包括跟踪信息,所述跟踪信息包括需要被传送用于复制的地址范围的位图(bit map)ο同步操作可以等待所冲洗的地址的传送的完成,以便确保冗余并且针对一致应用数据镜像(image)支持丰富数据服务的操作。传送可以涉及持久的、冗余的日志,其中数据在日志中的放置构成了传输。
[0010]因此,实施例可以通过允许应用显式地表示哪些存储器位置必须被同步在一起作为相同组的一部分来减轻将被冲洗的数据量。组的实施例可以将结构添加到数据从处理器向NVM的冲洗以及在节点之间的同步数据流的创建两者。这可以使得一致数据镜像或虚拟化的镜像能够被建立,其坚持(adhere to)应用特定规则。这些镜像然后可以被投射(cast)为各种类型的数据复制品或者被用于执行诸如解复制(deduplicat1n)或者分类的数据分析,所述数据分析需要数据的一致和可恢复状态。
[0011]现在参考附图,图1是节点100将数据冲洗到非易失性存储器(NVM)HO的示例框图。节点100可以是例如存储设备、计算机、交换机、外壳(enclosure)、服务器、控制器和/或连接到网络的任何类型的设备的一部分或者被包括在其中。在图1的实施例中,节点100被示出包括组表格110和控制器120。进一步地,节点100被示出与高速缓存130对接并经由高速缓存130与NVM 140对接。
[0012]节点100可以包括例如硬件设备,其包括用于实现下文描述的功能的电子电路,诸如控制逻辑和/或存储器。附加地或者作为替代,节点100可以被实现为被编码在机器可读存储介质上并且可被处理器执行的一系列指令。高速缓存130可以是任何类型的设备以存储将被写到诸如NVM 140 130的存储设备和/或从诸如NVM 140 130的存储设备读的数据132,使得可以以比存储设备的等待时间少的等待时间来服务对写和/或读数据的请求。
[0013]NVM 140可以包括当关断电力时保留其数据的任何类型的设备,诸如只读存储器、闪存、铁电RAM (F-RAM)、大部分类型的磁性计算机存储设备(例如,硬盘、软盘和磁带)和光盘以及基于忆阻器的、自旋转移矩(spin-torque transfer)以及相变随机访问存储器。例如,NVM可以包括以每字节或者每处理器高速缓存线(line)为基础读或写的存储器。
[0014]返回到节点100,组表格110包括组112,并且组112包括组地址范围114。组地址范围114可以包括被映射到NVM 140的一个或多个存储器位置142的一个或多个地址。术语映射可以指用于将诸如NVM 140的设备的一个或多个存储器地址并入到诸如节点100的组表格110的另一设备的地址表格中的技术。虽然组表格110被示出包括单个组112并且组114被示出包括单个组地址范围114,但是组表格110的实施例可以包括多个组112并且组112的实施例可以包括多个地址范围114。
[0015]控制器120可以接收包括同步地址范围116的同步命令。例如,应用(未示出)可能偶尔生成同步命令以便定义恢复点。可以例如经由显式调用来生成同步命令,或者在以其编写应用的语言的某些使用中,其可以是隐式的。同步操作可以遍历(traverse)到NVM140的软件路径或硬件路径。同步地址范围116可以涉及应用希望冲洗或写回到NVM140的一个或多个地址,诸如高速缓存130处的地址。应用可以创建组112中的一个或多个以表示其大规模的数据结构,诸如数据表格、索引和日志。应用然后可以用反映应用的整体数据结构的组地址范围114填充(populate)组112。
[0016]同步操作可以包括由处理器(未示出)执行的冲洗指令和/或被传送到NVM 140的同步命令。例如,在同步操作期间,虚拟存储器表格(未示出)、组表格110和/或子组表格(未示出)可以被用于协调除由同步命令的同步地址范围116初始引用的那些之外的附加地址(或者页)的冲洗。可以基于同步地址范围116是否被包括在组表格110的任何组112的组地址范围114中由组表格110来确定这些附加地址。
[0017]因此,控制器120可以响应于同步命令,根据由组表格110确定的顺序来将数据132从高速缓存130选择性地冲洗到NVM 140。基于同步地址范围116是否被包括在组地址范围114中的一个中,组表格110可以确定控制器120冲洗数据的顺序以及控制器120冲洗数据中的哪些中的至少一个。根据如由组表格110确定的、保留应用级一致性的顺序,同步操作也可以将所冲洗的数据传送到诸如另一服务器的另一节点。下文将关于图2更详细地描述组表格110。
[0018]图2是第一节点200将数据冲洗到NVM 280并且将所冲洗的数据传送到第二节点290的示例框图。在图2中,节点200包括组表格210、子组表格220、日志230、写时复制(COff)引擎240、控制器250和处理器260。处理器260还包括高速缓存265和虚拟存储器(VM)表格270。第一节点200被示出诸如经由网络连接与第二节点290对接。
[0019]图2的第一和第二节点200和290可以包括与图1的节点100类似的功能和/或硬件。例如,图2的组表格210
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1