用于存储管理的方法、设备和系统的制作方法

文档序号:6339738阅读:189来源:国知局
专利名称:用于存储管理的方法、设备和系统的制作方法
技术领域
本发明的实施方式涉及信息技术领域,更具体地,涉及用于存储管理的方法、设备和系统。
背景技术
对于任何计算系统而言,存储管理都是其核心功能之一,它直接影响到系统性能和终端用户体验。存储管理的主要任务之一是为一个或多个用户或者应用分配和回收存储空间。如果存储空间的分配或回收不当,可能会导致应用性能的降低、资源冲突甚至整个系统的死锁。特别是,近年来已经提出了以虚拟供应(Virtual Provisioning)为代表的虚拟共享存储机制。根据这种机制,可以为用户在逻辑上或者概念上提供相对较大的存储空间, 而仅在实际需要的情况下才真正从共享物理存储池中分配存储资源。在此类虚拟共享存储机制中,存储空间的分配与回收的重要性更加凸显。例如,如果不能迅速、灵活和有效地回收闲置存储空间,则可能影响其他用户或应用对存储资源的使用。在目前的存储管理中,一个亟待改善的问题是如何回收已经分配、但当前未被使用的存储空间。在现有技术中,在特定的存储空间被分配之后,存储管理方(例如,负责存储管理的过程、设备、系统,等等)通常只有在该存储空间中的所有位(bit)都被写入特定值的情况下才会对其进行回收。例如,该特定值通常可以设定为0。在这种情况下,假设待回收的目标存储空间大小为1 兆字节(MB),则只有当这U8MB空间中的每个位都被写入 0时,这块空间才可能被回收,并继而有可能被再次分配以供使用。这种存储空间的回收方法存在明显缺陷。首先,对存储空间的回收需要扫描该空间中的每个位,并且确定其当前值是否为0等预定值。显而易见,这是一个低效、耗时的过程。此外,更重要的缺陷在于,存储管理系统的这种空间回收方法对于较高级别的系统(诸如,文件系统等)通常不具有约束效力。例如,当文件系统需要创建一个文件时,它向存储系统请求分配相应的存储空间。而在文件系统随后删除该文件时,它通常仅仅设置对于文件系统有意义的某些标记以指示删除状态,而不会向已分配的存储空间中的每个位写入0。 以微软公司的NTFS文件系统为例,当文件系统删除某个文件时,其通常仅仅设置一组称为 BITMAP的标记(例如,一个字节),该标记与被删除的文件所使用的存储空间相关联,并且可以向文件系统指示该文件已被删除。在这种情况下,存储管理方与文件系统都不了解或遵循对方特定的规则和/或标记,因而存储管理方无法得知已删除文件的存储空间实际上已经处于闲置状态,因而也就无法回收和再利用该存储空间。显然,这将引起资源的闲置和浪费,增大存储资源竞争的潜在压力,并且不利地影响系统性能和用户体验。

发明内容
为了克服上述技术问题,本领域中需要更为有效、灵活存储管理方案。为此,本发明的实施方式提供一种用于存储管理的方法、设备和系统。
在本发明的一个方面,提供一种用于存储管理的方法。该方法包括请求文件系统确定目标存储空间在所述文件系统中的当前使用状态;从所述文件系统接收所述存储空间的当前使用状态的指示;以及根据所述指示来确定是否回收所述存储空间。在本发明的另一方面,提供一种用于存储管理的设备,包括请求装置,配置用以请求文件系统确定目标存储空间在所述文件系统中的当前使用状态;通信装置,配置用以从所述文件系统接收所述存储空间的当前使用状态的指示;以及确定装置,配置用以根据所述指示来确定是否回收所述存储空间。在本发明的又一方面,提供一种用于存储管理的系统,包括如上文所述的用于存储管理的设备;以及与所述存储管理设备通信的文件系统。现有技术存储空间回收中的上述缺陷,主要归因于存储管理方与文件系统之间缺乏有效的通信机制,进而导致双方无法了解对方的规则和状态。与此不同,根据本发明的实施方式,允许存储管理方请求文件系统确定目标存储空间在文件系统中的当前使用状况, 而不是对存储空间进行全局扫描。如果文件系统返回的指示表明目标存储空间目前已在文件系统中处于闲置状态或称未使用状态,则存储管理方可以根据此类指示确定回收该空间。可以理解,本发明的实施方式在存储管理方与文件系统之间建立了有效的联系和通信机制,从而解决了现有技术中无法有效回收闲置存储空间的问题,实现了有益的技术效果。 而且,在本发明实施方式的执行期间,在存储空间上运行的应用无需中断其操作,仍然可以不受影响继续执行。


通过参考附图阅读下文的详细描述,本发明的上述以及其他目的、特征和优点将变得易于理解。附图以示例而非限制的方式示出了本发明的若干实施方式,其中图1示出了根据本发明示例性实施方式的用于存储管理的方法的流程图;图2示出了根据本发明示例性实施方式的用于存储管理的设备的示意性结构框图;图3示出了根据本发明示例性实施方式的用于存储管理的系统的示意性结构框图;图4A和图4B分别示出了根据本发明示例性实施方式的用于存储管理的操作时序图;以及图5示出了适于用来实践本发明实施方式的计算机系统的框图。在各个附图中,相同或相似的标号被用以指代相同或类似的部分或元件。
具体实施例方式本发明的实施方式涉及用于存储管理的方法、设备和系统。下面将参考附图以示例的方式来描述本发明的若干实施方式。应当理解,下文示出和描述的这些实施方式仅仅是示例性的,并非意在限制本发明的范围。例如,在对实施方式的描述中,可能提及共享虚拟存储机制、Windows 操作系统、NTFS文件系统等具体概念。然而,这些具体概念仅仅是作为示例来阐释本发明的原理和思想,并不对本发明的范围构成任何限制。实际上,本发明的实施方式适用于存在上文描述的缺陷的任何情况。因此,本发明的范围仅由所附权利要求书限定。如上所述,本发明实施方式的核心思想之一是在存储管理方与文件系统之间建立适当的通信机制,从而允许存储管理方获知特定的存储空间在文件系统中的当前使用状态,进而据此确定是否可以回收该存储空间。首先参考图1来描述根据本发明实施方式的用于存储管理的方法100。应当理解, 方法100可以由存储管理方(例如,负责存储管理的任何适当的逻辑体或实体)来执行。 例如,在本发明的某些实施方式中,方法100可由下文结合图2描述的用于存储管理的设备 200执行。在方法100开始之后,在步骤102,请求文件系统确定目标存储空间在文件系统中的当前使用状态。在本发明的某些实施方式中,步骤102中可以响应于来自另一方的指示而被执行。例如,用户空间中的应用(简称“用户应用”)可以指示存储管理方确定与该应用关联的一个或多个存储空间是否处于闲置状态并且可以回收。在这种情况下,用户应用可以向存储管理方提供待处理的目标存储空间的标识。可以理解,用户应用所提供的存储空间标识可能是较高级别的标识,诸如某个盘的盘符(例如,“E:\”)。在这种情况下,可能需要对此类标识进行处理,以将其转换为存储系统和/或文件系统可以理解的标识(例如,存储空间中的地址),并且将其随附于所述请求发送给文件系统。备选地或附加地,步骤102也可以由存储管理方根据某些标准或规则自动地发起。例如,在本发明的某些实施方式中,步骤102可以在满足特定的触发条件时开始执行,例如,系统中的可用存储空间总量低于某个阈值。在本发明的另一些实施方式中,步骤102也可以按照预定的时间间隔定期执行。此外,存储空间可被划分为块(chunk),并且块的大小通常是2的幂,例如32MB、 64MB、U8MB等。相应地,在本发明的某些实施方式中,方法100的步骤102中的请求可以包括请求文件系统确定块的当前使用状态。例如,对于目标存储空间,可以将其在逻辑上划分为特定大小的块,并且以块为单位来请求文件系统确定其状态。应当理解,可以按照任何适当的顺序来确定这些块的状态。例如,在某些实施方式中,可以按照顺序的方式依次确定每个块在文件系统中的当前使用状态。在另一些实施方式中,可以按照并行的方式基本上同时地确定这些块在文件系统中的当前使用状态。其他执行方式也是可行的,本发明在此方面不受限制。根据本发明的实施方式,可以根据各种因素而动态设置请求确定其当前使用状态的块的大小。例如,在本发明的某些实施方式中,块的大小可以取决于在存储空间上操作的应用的数目。本领域技术人员可以理解,并如下文将详细描述的,对存储空间的状态确定和回收可能影响其他应用对该存储空间的输入/输出(I/O)操作(具体地,主要是I/O写操作)。因此,当存储空间上操作的应用数目较多时,可以适当减小块的大小,以降低待处理的块与其他应用所要使用的存储空间重叠的可能性,从而减小对其他应用的影响。此外,在本发明的某些实施方式中,块的大小还可以取决于在存储空间上操作的应用的属性。例如,当存储空间上操作的应用需要频繁访问存储空间,特别是频繁地对存储空间进行I/O写操作时,可以适当减小块的大小以减少冲突和影响。另外,块的大小还可以取决于用户的设置。 例如,在本发明的某些实施方式中,可以允许用户例如通过用户界面来交互地指定块的大小。应当理解,上面列举的仅仅是可能影响块大小的几个示例性因素,块的大小可以根据其他任何适当的因素来确定,本发明在此方面不受限制。此外,需要理解的是,这里所称的“块”是存储管理方划分目标存储空间的逻辑单位,并不一定对应于底层系统(例如,操作系统OS)操作存储资源的基本单位。在二者不同的情况下,操作系统可能将针对一个块的状态确定和/或回收动作划分为不止一次操作。 下文将参考图4A和图4B描述这种情况。根据本发明的实施方式,可以通过各种方式来实现步骤102中记载的向文件系统的所述请求。例如,以上文提及的NTFS文件系统为例,该系统提供有称为FSCTL_GET_ V0LUME_BITMAP的应用编程接口(API),该API可在内核态(kernel mode)下被调用,用以获得与目标存储空间相关联的BITMAP标记,该BITMAP标记指示相应存储空间在文件系统中的当前使用状态,即使用状态或闲置状态。应当理解,这仅仅是请求文件系统确定存储空间使用状态的一个示例性实施方式。在NTFS文件系统以及其他任何文件系统中,可以利用目前已有或将来开发的任何适当方式,请求文件系统确定目标存储空间的当前使用状态。本发明在此方面不受限制。接下来,在方法100的步骤104,从文件系统接收目标存储空间的当前使用状态的指示。当文件系统接收到步骤102中发出的上述请求后,它根据请求中随附的标识来辨识待处理的存储空间或存储空间的块(为简便,以下统称为“存储空间”),确定文件系统对该存储空间的当前使用状态,并且返回表明该状态的指示。继续上文的示例,在NTFS文件系统中,步骤102中的请求例如可以通过调用FSCTL_GET_VOLUME_BITMAP这一 API来实现。作为响应,文件系统获得与请求中标识的存储空间相关联的BITMAP标记,并可以返回该BITMAP标记作为状态指示。在本发明的某些实施方式中,在步骤104处接收的指示可以被保存在特定的存储器缓冲区中,以供将来使用。根据本发明的优选实施方式,在步骤104之后,方法继续进行到步骤106,在此处理存储空间的访问一致性(或称存取一致性)。如已知的,在此使用的术语“访问一致性”是指确保对同一存储空间的所有I/O访问都能正确地反映该存储空间的当前状态和更新, 并且确保在存储管理方对存储空间执行回收的过程中,其他任何应用不能对该存储空间进行I/O写操作。应当理解,步骤106是可选的。例如,在以下一个或多个情况下,步骤106可被省略没有任何应用在存储空间上进行操作(即,存储设备处于无人使用的离线状态); 可以确定在存储空间上操作的应用在特定时段内不会访问目标存储空间;可以确定在存储空间上操作的应用在特定时段内仅对目标存储空间进行I/O读操作而不进行I/O写操作; 以及无需考虑存储空间访问一致性的其他任何情况。在步骤106,可以采用多种策略来处理存储空间的访问一致性。例如,在本发明的优选实施方式中,可以采用“指示更新”的策略来处理访问一致性,即,在实际执行步骤 108(下文详述)之前,更新接收到的状态指示。具体地,根据这种策略,当在步骤104处接收并且保存了存储空间使用状态的指示之后,存储管理方不会限制其他应用对该存储空间的访问(例如,I/O写操作)。此后,为了防止由于其他应用在步骤104与确定步骤108之间的时间间隔中修改了该存储空间的使用状态而引发不一致问题,可以在实际执行步骤108 之前更新已存储的指示。例如,仍以上文描述的NTFS文件系统为例,在实际执行步骤108之前,每当其他应用对目标存储空间进行I/O操作之后,作为响应,可以再次获取目标存储空间的使用状态指示(例如,BITMAP标记),并且将新获取的指示与已经获取的指示(例如,被存储在存储器缓冲区中)进行逻辑或(“OR”)运算,从而更新状态指示。此类实施方式的示例将在下文参考图4A详述。备选地或附加地,在本发明的另一些实施方式中,可以在步骤106处采用“提前锁定”的策略来处理访问一致性。也即,响应于在步骤104处接收目标存储空间的当前使用状态的指示,可使目标存储空间立即被锁定,即,禁止其他应用对目标存储空间进行任何I/O 写操作。相应地,当步骤108和/或步骤110(下文详述)的动作完成之后,可以使目标存储空间被解锁。应当理解,在此类实施方式中,对存储空间的锁定可以在不同的时刻进行。 换言之,步骤106与步骤102和104可以按照不同于图1所示的顺序执行。例如,在本发明的某些实施方式中,可以在步骤102的请求之前、同时或之后锁定目标存储空间。在另一些实施方式中,可以在接收指示的同时或者之后锁定目标存储空间。这些不同的执行顺序均包含在本发明的范围之内。此类实施方式的示例将在下文参考图4B详述。接下来,方法100进行到步骤108,在此根据目标存储空间的当前使用状态的指示,确定是否回收目标存储空间。具体地,如果步骤104处接收的指示表明目标存储空间目前在文件系统中处于空闲状态(例如,在相应的文件已被删除的情况下),则确定回收该存储空间(步骤108的分支“是”)。在这种情况下,方法进行到步骤110,在此执行相应的动作以使目标存储空间被回收,而后方法进行到步骤112。步骤110中的回收动作可以通过目前已知或将来开发的任何适当方式来实现。例如,可以由存储管理方调用称为WRITE_SAME 的SCSI (小型计算机系统接口)命令。存储系统可以理解该命令,并且按照该命令指定的参数来释放相应的存储空间。应当理解,这仅仅是本发明实施方式的一个示例,本发明在此方面不受限制。另一方面,在108处,如果在步骤104处接收的指示表明目标存储空间目前在文件系统中处于使用状态,则确定不回收该存储空间(步骤108的分支“否”),并且方法进行到步骤112。应当理解,在本发明的优选实施方式中,步骤108和/或步骤110对目标存储空间的操作可以以独占方式执行。即,目标存储空间在该步骤的执行期间被锁定,不允许其他任何应用进行I/O写操作(注意,在本说明书的上下文中,“独占”和“锁定”可互换使用)。在此,需要强调的是,步骤108和/或步骤110的独占执行可以由存储管理方显式地发起,即, 由存储管理方锁定目标存储空间(此时,还需要在相应步骤的执行之后使目标存储空间被解锁)。备选地或附加地,这种独占执行也可以由底层操作系统来保证,例如通过调用以具有独占属性的API或命令(例如,上文提及的WRITE_SAME)。可以理解,独占执行是为了确保步骤108、110的正确性,但并非是必须的,例如,如果存储设备处于离线状态,和/或在存储空间上操作的应用在特定时段内不会访问目标存储空间等等,则步骤108、110无需以独占方式执行。另外,应当理解,在步骤108以独占方式执行的实施方式中,如果步骤106在此前已被执行,并且该步骤中采用了“提前锁定”策略,那么在步骤108开始执行之前目标存储空间已经由存储管理方独占,因此在步骤108处无需发起任何额外锁定动作。然而,如果步骤106先前未被执行或者该步骤中采用了不同于“提前锁定”的其他策略(例如,“指示更新”策略),则根据优选实施方式,应当在步骤108确保目标存储空间在其执行期间被锁定。
在目标存储空间被锁定期间,针对它的所有I/O写操作将被暂时挂起,从而变成未决I/O操作。根据本发明的实施方式,可以采用目前已知或者将来开发的任何适当方式来管理这些未决I/O操作。例如,一种常用的方式是将未决I/O操作组织在FIFO(先进先出)队列中。其他方式也是可行的,本发明在此方面不受限制。在这种情况下,为了处理这些可能存在的未决I/O操作,方法100在步骤112处调度针对目标存储空间的未决I/O操作。可以理解,步骤112中提及的“未决I/O操作”是指自从目标存储空间被锁定之后, 由于被挂起而变为未决的针对目标存储空间的所有1/0(写)操作。根据本发明的实施方式,在步骤112,可以按照任意适当的顺序执行针对目标存储空间的未决I/O操作。例如,如上文描述的示例中,如果未决I/O操作被组织在FIFO队列中,则在步骤112处可以使这些未决I/O操作根据请求到达的顺序被依次执行。或者,可以根据适当的并发度来并行执行未决I/O操作。实际上,对未决I/O操作的调度可以根据任何现在已知或将来开发的方式进行,本发明在此方面不受限制。此外,应当理解,步骤112是可选的。例如,如果目标存储空间从未被锁定,和/或在目标存储空间被锁定后不存在针对该目标存储空间的I/O写操作请求,则无需执行步骤 112。实际上,类似于步骤106,如果存储设备处于离线状态,和/或在存储空间上操作的应用在特定时段内不会访问目标存储空间,和/或在存储空间上操作的应用在特定时段内仅对目标存储空间进行I/O读操作而不进行I/O写操作,均可以省略步骤112。根据本发明的实施方式,如果以块为单位操作目标存储空间,则在步骤112之后, 可以针对剩余的待处理存储块从步骤102开始重复地执行方法100。另一方面,如果已经完成了对目标存储空间的最后一块的处理,或者目标存储空间被作为整体被操作,则方法100 在步骤112之后结束。通过上文描述,本领域技术人员可以理解,根据方法100的实施方式,存储管理方能够与文件系统有效地通信,并根据存储空间在文件系统中的当前使用状态来确定是否对其进行回收。特别地,存储空间的访问一致性问题也可得到处理。现在参考图2,其示出了根据本发明示例性实施方式的用于存储管理的设备200 的示意性结构框图。可以理解,设备200可以被实现以用作上文提及的“存储管理方”,并且可配置用以执行用于存储管理的方法,例如参考图1描述的方法100。如图2所示,根据本发明的实施方式,设备200可以包括请求装置202,通信装置 204以及确定装置206。请求装置202可配置用以请求文件系统确定目标存储空间在所述文件系统中的当前使用状态。通信装置204可配置用以从文件系统接收该存储空间的当前使用状态的指示。确定装置206可配置用以根据所述指示来确定是否回收所述存储空间。如上所述,在某些情况下,待处理的目标存储空间被划分为块。为了应对这种情况,可选地,在本发明的某些实施方式中,请求装置202可进一步包括块请求装置2022,其可配置用以请求文件系统确定块的当前使用状态。此外,为了避免或降低存储资源的冲突, 块请求装置2022可进一步配置用以根据以下一个或多个而动态设置请求确定其当前使用状态的块的大小在存储空间上操作的应用的数目、在存储空间上操作的应用的属性、以及用户设置。此外,如图2所示,可选地,在本发明的某些实施方式中,设备200还可包括回收装置208,其可配置用以响应于所述确定装置确定回收所述存储空间而使所述存储空间被回收。而且,为了在状态确定和回收存储空间的过程中避免造成存储资源的冲突或者死锁,可选地,在本发明的某些实施方式中,设备200还可包括一致性处理装置210,其可配置用以在确定装置206执行确定之前处理所述存储空间的访问一致性。具体地,如图2所示,可选地,在某些实施方式中,一致性处理装置210可以进一步包括指示更新装置2102, 其可配置用以响应于针对目标存储空间的I/O写操作而更新所述指示(S卩,实施上文描述的“指示更新”策略)。备选地或附加地,一致性处理装置210还可以进一步包括锁定装置 2104和解锁装置2106,其中锁定装置2104可配置用以使目标存储空间被锁定,而解锁装置 2106可配置用以相应地使目标存储空间被解锁(即,实施上文描述的“提前锁定”策略)。而且,为了处理状态确定和回收期间可能存在的未决I/O操作,可选地,在本发明的某些实施方式中,设备200还可以包括调度装置212,其可配置用以在确定装置206执行确定之后,调度针对目标存储空间的未决I/O操作。可以理解,上文结合图2描述的设备200可以通过软件、硬件、固件、专用集成电路或其任意组合来实现。例如,在本发明的某些实施方式中,设备200可以实现为以内核态 (kernel mode)运行的软件应用,并且其中包含的各个装置以软件模块的方式具体化。在另一些实施方式中,设备200也可以基于硬件而实现为实体设备。本发明在此方面不受限制。参考图3,其示出了根据本发明示例性实施方式的用于存储管理的系统300。如图 3所示,系统300可以包括用于存储管理的设备302、文件系统304、底层驱动306、一个或多个存储空间308-1到308-N(可统称为308)、应用310以及其他应用312。设备302可以对应于上文图2描述的设备200,其可以配置用以按照上文参考图1和图2描述的方式与文件系统304通信,并且根据从文件系统304处接收到的、关于存储空间308的当前使用状态的指示,来确定是否回收存储空间308-1到308-N中的一个或多个。而且,根据本发明的优选实施方式,系统300可以配置用以确保在状态确定和回收存储空间的过程中,应用310与其他应用312之间不会发生访问一致性的问题。特别地,在本发明的某些实施方式中,在用户空间中运行的某个应用310可配置用以指示所述存储管理设备回收所述目标存储空间。这里需要注意,在多数系统中,为了确保系统的安全性、稳定性和/或运行效率,用户应用对底层设备的操作通常受到较大限制。 以NTFS系统为例,用户应用通常无权调用上文提及的用于状态确定和回收的API_FSCTL_ GET_VOLUME_BITMAP和直接发送SCSI命令WRITE_SAME。因此,如图3所示,设备302运行在内核空间中或者具有内核空间的权限。换言之,设备302以内核态运行。这样,当接收到来自用户空间的应用310的指示时,设备302可操作以完成存储空间的状态确定和回收所需的操作。另外,图3中还示出了底层驱动306,其可配置用以负责内核空间与物理存储空间之间的抽象与转换,例如,对存储空间的标识进行转换,从而支持在实际物理存储资源中的
寻址,等等。上文已经参考图1-图3分别详细描述了根据本发明示例性实施方式的用于存储管理的方法、设备和系统。现在,将参考图4A和图4B,详细描述根据本发明实施方式的两个具体示例,以便本领域的技术人员能够更好地理解本发明的基本原理和思想。
可以看到,图4A和图4B以UML (统一建模语言)时序图的形式给出。然而,这仅仅是为了说明目的,不对本发明的范围构成任何限制。另外,如下文所述,在图4A和图4B的示例中,存储管理操作响应于用户应用的指示而发起。然而,如上文所述,这只是本发明的一种实施方式。存储管理操作可以响应于其他多种事件而发起。而且,在图4A和图4B的示例中,存储空间的状态确定和回收是以块为基础顺序来执行的。应当理解,这些具体特征都是为了更好地阐释本发明优选实施方式的原理,本发明的范围在这些方面均不受限制。首先参考图4A,其示出了根据本发明优选实施方式的用于存储管理的操作时序图。特别地,在此示例中,采用“指示更新”策略来处理目标存储空间的访问一致性问题(例如,上文参考图的步骤106所描述的)。如图4A所示,用户应用可以指示回收指定的目标存储空间。响应于此,存储管理设备(例如,上文参考图2描述的设备200)可以发起回收过程。在本发明的某些实施方式中,回收过程可以作为进程或者线程被发起,其可被配置以根据参考图1描述的方法100进行操作。在回收过程发起之后,它执行某些必要的初始化动作,例如初始化用于将来保存使用状态指示的存储器缓冲区,等等。此后,回收过程处理目标存储空间的第一块。如上文所述,这可以包括请求文件确定第一块的当前使用状态,并且接收文件系统返回的当前使用状态的指示。在接收到指示后,回收过程将该指示例如存储在存储器缓冲区中(未示出),并且不对目标存储空间进行锁定或独占。此后,回收过程可以根据该指示来确定是否回收,以及在确定回收的情况下执行回收动作。在此期间,如果其他应用请求对存储空间进行I/O写操作,只要状态确定和回收动作尚未开始,则该I/O写操作便可以执行。特别地,如果其他应用发起的I/O写操作与目标存储空间重叠,则存储管理设备将更新状态指示,例如通过对指示进行逻辑“或”运算,如上文所述。以此方式,可以确保状态确定和回收动作总是基于目标存储空间的最新的、正确的状态。另一方面,如果当其他应用发起的I/O写操作请求到达时,针对目标存储空间的状态确定和/或回收动作已经开始,则目标存储空间已经处于被独占的状态(即,被锁定), 因而该请求将作为未决I/O操作被挂起。当回收过程完成了针对目标存储空间的状态确定以及可能的回收动作之后,未决I/O操作可以根据任何适当的方式被调度和执行,如上文所述。此后,回收过程可以顺序地处理目标存储空间中的第二块、第三块直至最后一块。 针对每个块的操作与上文针对第一块的操作类似,在此不再重复。当最后一个块处理完成之后,可以向请求回收的应用返回处理结果。这里需要特别指出的是,针对每一块的状态确定和回收动作可执行不止一次(尽管在图中仅示出了一次)。这是因为,如上文所述,回收过程所定义的“块”与文件系统的基本单位可能是不同的。这种情况下,对于每个块,文件系统会在逻辑上进一步划分为若干基本单元。而且,某些存储系统可能要求对这些基本单元按照顺序操作,这就可能导致状态确定和/或回收动作执行多次。考虑一个具体示例,假设回收过程的一个存储块被文件系统划分为8个基本单元,并且文件系统指示该块中的第1、3、4个基本单元可回收,其他基本单元不可回收。这时,如果存储系统具有连续操作基本单元的要求,则需要执行两次回收动作第一次回收动作只能回收第1个基本单元,第二次回收动作回收第3、4基本单元。应当理解,这仅仅是针对某些存储系统的特定实施方式。当存储系统无此要求时,当然可以通过单次回收动作完成对目标存储空间的回收。本发明在此方面不受限制。下面参考图4B,其示出了根据本发明另一示例性实施方式的用于存储管理的又一操作时序图。特别地,在此示例中,采用“提前锁定”策略来处理目标存储空间的访问一致性问题(例如,上文参考图的步骤106所描述的)。图4B的操作与图4A基本上等同,其区别在于当回收过程从文件系统接收到块的当前使用状态的指示之后,它便立即使目标存储空间被锁定。因此,其他应用随后发起的针对目标存储空间的任何I/O写操作请求都将作为未决操作被挂起。相应地,当回收过程完成了对块的确定或回收动作之后,使目标存储空间被解锁,并且调度目标存储空间被锁定期间产生的所有未决I/O操作。图4B的其他操作类似于图4A,在此不再重复。如上所述,图4A和图4B的示例中均涉及对目标存储空间的访问一致性处理。然而,这仅仅是本发明的优选实施方式,而并非必不可少的。实际上,如上文所述,在很多情况下,本发明的实施方式可以不考虑目标存储空间的访问一致性,和/或以目前已知或将来开发的任何方法来处理访问一致性。图5示出了适于用来实践本发明实施方式的计算机系统的框图。如图5所示,计算机系统可以包括CPU(中央处理单元)501、RAM(随机存取存储器)502、R0M(只读存储器)503、系统总线504、硬盘控制器505、键盘控制器506、串行接口控制器507、并行接口控制器508、显示控制器509、硬盘510、键盘511、串行外部设备512、并行外部设备513和显示器514。在这些部件中,与系统总线504相连的有CPU 501、RAM 502、ROM 503、硬盘控制器505、键盘控制器506、串行接口控制器507、并行接口控制器508和显示控制器509。硬盘510与硬盘控制器505相连,键盘511与键盘控制器506相连,串行外部设备512与串行接口控制器507相连,并行外部设备513与并行接口控制器508相连,以及显示器514与显示控制器509相连。应当理解,图5所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明的限制。在某些情况下,可以根据需要增加或者减少其中的一些设备。特别地,本发明的实施方式可以通过计算机程序产品的形式实现。计算机程序产品例如可以存储在图5所示的RAM 502、ROM 503、硬盘510和/或任何适当的存储介质中, 或者通过网络从适当的位置下载到计算机系统500上。该计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图5中示出的CPU 501)执行的程序指令。所述程序指令至少可以包括用于请求文件系统确定目标存储空间在所述文件系统中的当前使用状态的指令;用于从所述文件系统接收所述目标存储空间的当前使用状态的指示;以及用于根据所述指示来确定是否回收所述目标存储空间的指令。上文已经结合附图,详细描述了根据本发明实施方式的用于存储管理的方法、设备和系统。根据本发明的实施方式,在存储管理方与文件系统之间建立了有效的通信机制, 从而使得存储管理方可以获知目标存储空间在文件系统中的当前使用状态,并据此确定目标存储空间是否可回收。可以理解,与现有技术相比,本发明的实施方式解决了现有技术中无法有效回收闲置存储空间的技术问题。而且,在本发明实施方式的执行期间,在存储空间上运行的应用无需中断其操作,仍然可以不受影响继续执行。应当注意,本发明的实施方式可以通过软件、硬件或者软件和硬件的结合来实现。 硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系CN 102541743 A
统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本实施方式的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。本说明书中提及的通信网络可以包括各类网络,包括但不限于局域网(“LAN”), 广域网(“WAN”),基于IP协议的网络(例如,因特网)以及端对端网络(例如,ad hoc对等网络)。此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤, 将多个步骤合并为一个步骤,或是将一个步骤分解为多个步骤。虽然已经参考若干具体实施方式
描述了本发明,但是应该理解,本发明并不限于所公开的具体实施方式
。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
权利要求
1.一种用于存储管理的方法,包括请求文件系统确定目标存储空间在所述文件系统中的当前使用状态; 从所述文件系统接收所述目标存储空间的当前使用状态的指示;以及根据所述指示来确定是否回收所述目标存储空间。
2.根据权利要求1所述的方法,还包括响应于确定回收所述目标存储空间,使所述目标存储空间被回收。
3.根据权利要求1所述的方法,还包括在所述确定之前,处理所述目标存储空间的访问一致性。
4.根据权利要求3所述的方法,其中所述处理包括响应于针对所述目标存储空间的 I/O写操作而更新所述指示。
5.根据权利要求1到4任意一个所述的方法,其中所述目标存储空间在所述确定期间被锁定。
6.根据权利要求5所述的方法,还包括在所述确定之后,调度针对所述目标存储空间的未决I/O操作。
7.根据权利要求1所述的方法,其中所述目标存储空间被划分为块,并且其中请求确定所述目标存储空间的当前使用状态包括请求所述文件系统确定块的当前使用状态。
8.根据权利要求7所述的方法,其中根据以下一个或多个而动态设置请求确定其当前使用状态的块的大小在所述目标存储空间上操作的应用的数目、在所述目标存储空间上操作的应用的属性、以及用户设置。
9.根据权利要求1所述的方法,其中所述目标存储空间是虚拟共享存储空间。
10.一种用于存储管理的设备,包括请求装置,配置用以请求文件系统确定目标存储空间在所述文件系统中的当前使用状态;通信装置,配置用以从所述文件系统接收所述目标存储空间的当前使用状态的指示;以及确定装置,配置用以根据所述指示来确定是否回收所述目标存储空间。
11.根据权利要求10所述的设备,还包括回收装置,配置用以响应于所述确定装置确定回收所述目标存储空间,使所述目标存储空间被回收。
12.根据权利要求10所述的设备,还包括一致性处理装置,配置用以在所述确定装置执行所述确定之前处理所述目标存储空间的访问一致性。
13.根据权利要求12所述的设备,其中所述一致性处理装置进一步包括指示更新装置,配置用以响应于针对所述目标存储空间的I/O写操作而更新所述指
14.根据权利要求10-13任意一个所述的设备,其中所述目标存储空间在所述确定期间被锁定。
15.根据权利要求14所述的设备,还包括调度装置,配置用以在所述确定装置执行所述确定之后,调度针对所述目标存储空间的未决I/O操作。
16.根据权利要求10-13任意一个所述的设备,其中所述目标存储空间被划分为块,并且所述请求装置进一步包括块请求装置,配置用以请求所述文件系统确定块的当前使用状态。
17.根据权利要求16所述的设备,其中所述块请求装置进一步配置用以,根据以下一个或多个而动态设置请求确定其当前使用状态的块的大小在所述目标存储空间上操作的应用的数目、在所述目标存储空间上操作的应用的属性、以及用户设置。
18.根据权利要求10所述的设备,其中所述目标存储空间是虚拟共享存储空间。
19.一种用于存储管理的系统,包括根据权利要求10-18任一项所述的用于存储管理的设备;以及与所述用于存储管理的设备通信的文件系统。
20.根据权利要求19所述的系统,还包括在所述目标存储空间上操作的应用,配置用以指示所述用于存储管理的设备回收所述目标存储空间。
21.根据权利要求19所述的系统,其中所述用于存储管理的设备以内核态在所述系统中运行。
全文摘要
本发明的实施方式涉及用于存储管理的方法、设备和系统。具体地,公开了一种用于存储管理的方法,包括请求文件系统确定目标存储空间在所述文件系统中的当前使用状态;从所述文件系统接收所述目标存储空间的当前使用状态的指示;以及根据所述指示来确定是否回收所述目标存储空间。还公开了用于存储管理的相应设备和系统。根据本发明的实施方式,在存储管理方与文件系统之间建立了有效的通信机制,从而能够实现更为有效的存储管理。
文档编号G06F12/02GK102541743SQ20101060312
公开日2012年7月4日 申请日期2010年12月17日 优先权日2010年12月17日
发明者黄为纲, 黄松珏 申请人:伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1