一种资源管理系统和方法

文档序号:6464497阅读:92来源:国知局
专利名称:一种资源管理系统和方法
技术领域
本发明涉及数据的存取或记录方法,特别涉及一种资源管理系统和方法。
背景技术
资源管理是对索引节点资源和块资源的管理,其是文件系统的主要功 能操作,资源管理的效率影响到文件系统的整体效率。在现有的文件系统中,比如ext2、 ext3、 JFS、 ReiserFS等,资源管理 一般采用位图方式,用位图中的一位的0/1值标志所描述资源的空闲/占用 状态;另外还有一些文件系统,比如DCFS2、GFS,采用了扩展块段(extent) 方式,用(起始块号,数量)二元组来表示一段连续的空闲资源。如图l所示,现有资源管理系统包括文件操作部件和资源组织部件。 其中,文件操作部件包括文件创建部件和文件分配回收块资源部件。文 件操作部件用于在文件创建和删除操作过程中,把从资源组织部件分配到 的资源组织到文件中,或者回收文件中的资源。资源组织部件包括索引 节点(inode)组织部件和块组织部件,索引节点组织部件用于存储管理每 个索引节点的状态,块组织部件用于存储管理每个块资源的状态。资源管 理系统所处理的文件包括索引节点和存储数据的块资源这两部分。索引节 点包含索引节点属性和地址索引两部分内容,索引节点属性维护文件的属 性,包括权限、大小、访问时间等,地址索引维护文件所包含的块地址以 及逻辑地址到物理地址的映射关系。大量的块资源以一定方式组织在文件中。在上述系统中的资源分配方法包括如下步骤1.创建文件,首先分配 索引节点资源,具体由文件创建部件从索引节点组织部件中搜寻空闲索引 节点资源,把相应的索引节点资源状态标志设置为"占用",然后初始化 分配到的索引节点,包括初始化索引节点属性信息,清除索引节点中的地 址索引信息;2.为文件分配块资源,由文件分配回收块资源部件从块组织 部件中搜寻空闲块资源,把相应的块资源状态标志设置为"占用",把获4取的块资源4要照文件的形式组织到文件中相应的位置,改文件的地址索 引,文件中每个块分配都需要进^f亍上述过程,因此该操作次数较多,开销较大;3.文件块资源回收,由文件分配回收块资源部件4巴文件中的块资源 从文件地址索引中删除,把块组织部件中该块资源状态设置为"空闲", 文件中的每个块回收都需要进行上述过程,因此该操作次数较多,开销较资源完全回收,然后回收索引节点资源,把相应的索引节点资源状态设置 为"空闲"。从以上操作过程可见,文件在现有文件系统中一直是消耗资源角色, 文件中记录的资源只能被该文件使用,而不能被其他文件直接使用。在创 建时把大量的块资源组织成文件,在删除时又把大量的块资源完全回收; 当再次创建时,需要多次重复以上的块资源分配操作,不能重用先前块资 源分配结果,造成了资源分配的低效。块资源只有在回收到资源组织部件 后才能被再次使用,资源不能直接从一个文件直接转移到另一个文件,造 成了资源回收的低效。发明内容本发明目的是克服目前文件系统中资源管理的低效问题,提出 一种资 源管理系统和方法。为实现上述目的,根据本发听的一个方面,提供一种资源管理系统, 包括下列部件基于文件资源组织部件,其用于存储具有空闲资源的文件的索引节点;文件操作部件,其用于根据所述基于文件资源组织部件中存储的所述 索引节点直接进行资源管理。其中,该系统还包括传统资源组织部件和控制部件 所述传统资源组织部件用于存储系统资源状态;所述文件操作部件还用于根据所述传统资源组织部件的系统资源状态进行资源管理;所述控制部件用于为所述文件操作部件选择是根据所述传统资源组 织部件还是根据所述基于文件资源组织部件来完成资源管理。其中,所述控制部件是根据文件系统的请求和文件系统的资源状态进行所述选择的。其中,所述控制部件还用于回收所述基于文件资源组织部件中的空闲资源。其中,所述基于文件资源组织部件包括以下部件 删除文件组织部件,用于存储已删除文件的索引节点; 截短文件组织部件,用于存储正在使用文件的索引节点。 根据本发明另 一方面,还提供了 一种利用上述的资源管理系统创建目 标文件的方法,包括下列步骤11)判断所述删除文件组织部件内是否存在索引节点;12 )从所述删除文件组织部件存储的索引节点中搜寻空闲索引节点;13)分配所述空闲索引节点给目标文件。其中,所述步骤13)包含步骤131 )把所述空闲索引节点从所述删除文件组织部件中移出;132) 初始化所述空闲索引节点的索引节点属性;133) 初始化所述空闲索引节点的地址索引。 其中,所述步骤13)还包括步骤134) 判断所述空闲索引节点是否映射有块资源,如果所述空闲索引 节点映射有块资源,把所述映射的块资源状态设置为"空闲";135) 存储所述空闲索引节点至所述截短文件组织部件。其中,该创建目标文件的方法还包括步骤14):如果所述删除文件组 织部件内不存在索引节点,则根据系统资源状态分配空闲索引节点给所述 目标文件。标文件包含的块资源数量接近的源文件的空闲索引节点。根据本发明的再一方面,还提供了一种利用上述的资源管理系统为目标文件分配块资源的方法,包括如下步骤21 )判断所述目标文件地址索引中对应的逻辑位置是否存在空闲块资源;22) 如果所述目标文件地址索引中对应的逻辑位置存在空闲块资源, 则分配所述存在的空闲块资源给所述目标文件;23) 否则,才艮据所述删除文件组织部件或所述截短文件组织部件中存 储的具有空闲资源的文件的索引节点搜寻空闲块资源,把所述搜寻到的空6闲块资源分配给所述目标文件。其中,该为目标文件分配块资源的方法还包括步骤24 )如果所述目标文件地址索引中对应的逻辑位置不存在空闲块资源,而且根据所述删除文件组织部件或所述截短文件组织部件中存储的具有空闲资源的文件的索引节点搜寻不到空闲块资源,则根据系统资源状态分配空闲块资源给所述目标文件。根据本发明的又一 方面,还提供了 一种利用上述的资源管理系统回收文件块资源的方法,其特征在于,包括如下步骤 确定并回收所述文件中需要回收的块资源; 存储所述文件的索引节点到所述截短文件组织部件。 根据本发明的又一方面,还提供了 一种利用上述的资源管理系统删除文件的方法,其特征在于,存储所述文件的索引节点到所述删除文件组织部件。与现有文件系统相比,本发明中文件不仅作为消耗资源的角色,同时 还作为拥有资源的角色。本发明的有益效果在于1) 资源分配的结果可以被重用,即仅对资源进行状态修改就可以直 接复用已经组织成源文件的资源,不必移动资源,提高了资源分配的效率。2) 资源可以从源文件直接转移到目标文件,不必经过资源组织部件, 提高了资源管理的效率。3) 文件删除操作不必进行块资源回收,仅记录文件已删除,降低了 资源回收的开销。4) 大量减少了资源分配、回收过程中相关数据结构的修改操作,提 高了资源管理速度。


图1是当前文件系统资源管理系统示意图。 图2是本发明基于文件的资源管理系统示意图。 图3是本发明结合ext3实例的系统示意图。 图4是逻辑地址存在空闲资源时的分配示意图。图5是del一list或trunc—list中有相同级别三级间接地址结构时的分配 示意图。图6是del list或trunc—list中没有相同级別三级间接地址结构时的分配示意图。图7是截短操作示意图。
具体实施方式
以下,结合附图来详细说明本发明的具体实施方式
。基于本发明思想,提供了一个资源分配系统的实施例,如图2所示, 该系统除了包括现有资源分配系统中的部件外,还包括基于文件资源组织 部件和控制部件。为了与基于文件资源组织部件区分,下文中称本系统中 的与现有系统中相同的资源组织部件为"传统资源组织部件"。基于文件资源组织部件,采用文件方式组织文件系统内的资源,提供 资源的分配回收《^妄口 。其中包含删除文件组织部件和截短文件组织部件, 删除文件组织部件中存储已删除文件的索引节点,该索引节点是"空闲" 的,已删除文件包含的块资源也是"空闲"的;其提供索引节点和块资源 的分配、回收接口。截短文件组织部件存储正在使用文件的索引节点,正 在使用文件包含的部分或者全部块资源是"空闲"的,可以分配给其他文 件,其它块资源是"占用"的;其仅提供块资源的分配、回收接口。块资 源"空闲"表示块资源虽然组织在文件中,但是该文件没有占用该块资源, 可以分配给其他文件;块资源"占用,,表示块资源正在被文件使用,不能 分配给其他文件。控制部件与传统资源组织部件、基于文件资源组织部件和文件系统文 件操作部件相连接,控制部件根据文件系统的请求和系统资源状态,为文件操作部件选择由传统资源组织部件还是由基于文件资源组织部件完成 文件系统的资源管理操作。基于上述系统的资源管理方法包括如下步骤创建目标文件时,由控制部件为文件创建部件选择从传统资源组织部 件还是从基于文件资源组织部件中分配文件索引节点资源。优先从基于文 件资源组织部件中尝试分配,当基于文件资源组织部件没有满足文件要求 的资源时,再从传统资源组织部件中分配。例如基于文件资源组织部件 中没有空闲索引节点资源的情况。如果从基于文件资源组织部件中进行索引节点分配,则从删除文件组织部件中搜寻空闲索引节点资源,并把该索引节点从删除文件组织部件中 移出。把索引节点地址索引中所包含的块资源状态都设置为"空闲",初 始化索引节点。此时优先选择删除时间较长、源文件中所包含的块资源数量同目标文件大小接近的空闲索引节点资源。如果从传统资源组织部件中 进行索引节点分配,则与现有技术相同。优选的,如果创建的目标文件中存在空闲的块资源,则把该目标文件 的索引节点转移到截短文件资源组织部件中。为目标文件分配块资源同创建目标文件类似,由控制部件为文件分配 回收块资源部件选择从传统资源组织部件还是从基于文件资源组织部件 中分配块资源。优先从基于文件资源组织部件中进行尝试分配,如果分配 不成功,则从传统资源组织部件中分配。从基于文件资源组织部件中为目标文件分配块资源时,如果该目标文 件地址索引中对应逻辑位置存在空闲的块资源,则仅需要把该块资源状态 设置为"占用"即可。否则,从删除文件组织部件或截短文件组织部件中搜寻空闲块资源, 优先从删除文件组织部件中搜寻。把搜寻到的块资源从源文件中直接转移 到目标文件中,更新目标文件索引节点的地址索引。如果上述操作仍旧不能满足要求,例如基于文件资源组织部件中资源为空,或者没有相应数量的连续块资源的情况,则返回分配失败,然后 尝试从传统资源组织部件中分配块资源。从传统资源组织部件中分配块资 源时,与现有技术相同。截短文件的具体操作如下所示文件分配回收块资源部件确定文件中 哪些块资源需要回收;把需要回收的块资源状态设置为"空闲";把要回 收文件的索引节点记录到截短文件资源组织部件中,即完成块资源回收操 作。删除文件只需要把该文件的索引节点记录到删除文件组织部件中,即 完成文件删除。经过从基于文件资源组织部件的多次资源分配,系统的资源必然越来 越多的被基于文件资源组织部件中的文件所占有,为了避免系统的资源过 于碎化,需要把基于文件资源组织部件中的资源回收到传统资源组织部 件。优选的,控制部件还回收基于文件资源组织部件中的空闲资源至传统 资源组织部件。首先,选择要回收的空闲资源,优选的,综合考虑资源的 回收时间、资源的碎化程度、空闲资源的数量等因素,选择回收时间久, 碎化程度高且空闲资源数量少的资源;然后,把要回收的资源从基于文件资源组织部件中删除;最后,更新传统资源组织部件中的资源状态,把回收资源的状态更新为"空闲"。为了使本发明的目的、技术方案及优点更加清楚明白,下面参考附图3并以ext3的文件系统为具体实例来对基于上述装置的资源管理方法进行 说明。如附图3所示,ext3中传统资源组织部件是位图方式资源组织部件, 包括索引节点位图和块资源位图,分别维护索引节点和块资源的状态。基 于本发明的思想,在现有技术的系统基础上增加了两个链表数据结构作为 基于文件资源组织部件。其一,已删除文件链表(del一list),链表节点包含已删除文件的索引 节点。 '其二,已截短文件链表(truncjist),链表节点包含被截短文件的索引 节点,文件中已被截短部分的块资源"空闲"。更改ext3的文件地址索引数据结构,借用地址索引32位块号的最高 位"invalid"表示该块资源的状态,"0"表示块资源"空闲",T表示块 资源"占用"。该方法虽然减少了 ext3的最大容量,31位的块号可以支持 8TB容量(当块大小为4KB时),降低为原来的1/2,但是仍旧能够满足 大多的文件系统需求,即使不能满足,该问题也很容易采用扩展块号的方 式解决,因此造成的影响较小。在ext3的文件地址索引三级间接地址结构 中,如果三级间接地址链的顶级索引地址的"invalid"为"0",则表示该 三级间接地址链中的资源都是空闲的;如果顶级索引地址的"invalid"为 "1",则不能确定三级间接地址链整体资源的状态,需要根据次级索引地 址的"invalid"进行判断,依此类推,直到三级间接地址索引链的最后一 级索引地址的"invalid"状态。根据上述ext3的文件系统的具体实例,本发明的资源分配方法具体实 施包括如下步骤首先创建文件,为文件分配索引节点资源和块资源。如上所述,由控制部件为文件创建部件选择从位图方式资源组织部件 还是基于文件资源组织部件分配索引节点资源。可以采用各个策略选择从 位图方式资源组织部件还是从基于文件资源组织部件中分配,优选地,采 用优先从基于文件资源组织部件中分配。但在基于文件资源组织部件没有 满足文件要求的资源情况下,从传统资源组织部件中分配。例如第一次 创建文件时,del一list中没有空闲索引节点资源的情况。本领域人员可以理 解,其他选择策略也应当属于本发明保护范围之内。从基于文件资源组织部件分配索引节点资源,首先,从deljist中搜 寻空闲索引节点资源,优先选择删除时间长且所包含的块资源数量同目标 文件包含的块资源数量接近的源文件的空闲索引节点资源;然后,对所选 索引节点进行初始化,把索引节点地址索引中三级间接地址布局中最顶级 的块号的"invalid"设置为0,初始化索引节点属性。最后,如果该目标 文件存在空闲资源,把该目标文件转移到trunc」ist中,否则仅从del—list 链表中移出即可。从位图方式资源组织部件分配索引节点资源属于现有技术,在此不在 赘述。然后分配块资源,由控制部件为文件创建部件选择从位图方式资源组 织部件还是从基于文件资源组织部件中分配。可以采用各个策略进行选 择,其中优选的,采用优先从基于文件资源组织部件中分配。如果基于文 件资源组织部件中没有足够空闲块资源,或者基于文件资源组织部件中空 闲块资源不能满足策略的要求,例如del一list和trunc—list中的块资源不 能满足资源分配连续性等要求,则从位图方式资源组织部件中分配。如果从基于文件资源组织部件分配块资源,首先,如果待分配的目标 逻辑地址存在对应的空闲块资源,则把记录该块资源的三级间接地址的每 一级设置为'T,表示已经占用,同时设置每一级中其他没有使用块号的 "invalid"标志为"0",如图4所示。如果待分配的目标逻辑地址不存在资源状态为"0"的块资源,则搜 索del一list中是否存在空闲的块资源,如果存在,则从中进行块资源分配。 如果deljist中不存在空闲的块资源,则尝试从tmnc—list中分配块资源。 从del—list或从trunc一list中分配情况下,块资源分配具体如下搜索是否有相同级别的间接地址结构,如果存在则进行相同级别间接 地址结构的转移,作为整体直接转移到目标文件中,具体如图5所示。图 5中,左侧两个方框内分别为块分配前的源文件和目标文件;右侧两个方 框内分别为分配后的源文件和目标文件。首先,把三级间接地址结构的最 高级从源文件中移出,如图中的块号x所示,把源文件中块号x清O,也 就把该块资源结构整体从源文件中删除了;然后,把该三级间接地址结构 整体挂接到目标文件中的相应位置;最后,修改目标文件的三级间接地址 结构中每一级已被分配块号的"invalid"标志状态为"1",同时设置每一 级中没有使用块号的"invalid"标志为"0"。如果没有相同级别的间接地址结构,则尽量申请最大级别的间接地址 链,例如图6所示选取了一个二级间接地址。与图5相同,图6的左侧两 个方框内分别为块资源分配前的源文件和目标文件,右侧两个方框内分别为分配后的源文件和目标文件。首先,把申请到的二级间接地址结构的最高级块号y和单级的块号x从源文件中移出,把源文件中块号y和块号x 清0,也就把相应资源从源文件中删除了;然后,把获取的块资源组织成 为需要级别的三级间接地址格式,挂接到目标文件中。最后,修改目标文 件三级结构中每一级已被分配块号的"invalid"标志状态为已经占用"1", 同时设置每一级中没有^f吏用块号的"invalid"标志为"0";当截短文件时,需要回收文件资源,如图7所示。首先,确定截短界 面,然后逐级遍历截短界面,把每级超过截短界面的块号的"invalid"标 志设置为"O,,,表示该文件已经不再使用这些资源了;然后,把该索引节 点记录到tmnc一list链表中,即完成截短时资源的回收。当删除文件时,同样需要回收文件资源。把待删除文件的索引节点添 加到del一list列表中,即完成删除文件时资源的回收。在某些情况下,需要把deljist或者tmncjist中已经回收的资源转移 到传统资源组织部件中,比如进行资源碎片整理等情况时。也就是说, 最后,优选的,需要控制部件把基于文件资源组织部件中的空闲资源回收 到位图方式资源组织部件。首先,根据需要选择要回收资源的文件,然后 确定把哪些资源进4亍回收,把资源从文件中回收到位图方式资源组织部件 中,把回收资源的状态在资源位图中设置为空闲。本领域技术人员可以理解,以上实例是以资源组织方式为位图方式来 说明的,但本发明的思想一样可以应用于其它资源组织方式,例如extent 方式。在采用位图方式中,块资源状态改变(分配、回收)后,就设置相 应的位图标志位(O、 1);在采用extent方式中,资源分配后,从空闲资 源中删除,资源回收后,以extent方式记录到空闲资源中。而且,以上实例是以三级间接地址方式的文件布局为例进4亍描述的, 但是本发明也可以应用于其它文件布局方式,例如extent方式。extent方 式与三级间接地址方式主要不同在于(1)标志文件内资源空闲与否的方 法(也即是空洞的表示方法),extent采用(start , count, invalid )其中"invalid" 标志(start, count)的资源是否被该文件使用。(2)资源从文件中移除时, 修改extent结构,而三级间接地址结构中是把资源块号清零。(3)分配资 源后,以extent方式记录到文件中,并设置"invalid"标志为有效。所以 上述本发明的思想同样适用,只是在以下步骤进^f亍区别即可(1 )在extent 方式下,文件内资源是否空闲,由extent ^t据结构中的"invalid"标志, 标志该extent整体的空闲与否。(2)在为文件分配块资源时,如果待分配 的目标逻辑位置存在对应的空闲资源,则进行资源状态的修改,由于整个extent仅采用 一个"invalid"标志位标志空闲与否,因此需要对整个extent 进行分裂,分裂后分别表示空闲与否。(3)在截短文件时,也需要把处于 截短界面的extent进行分裂,从而分别表示空闲与否,并且把处于截短界 面之后的extent的都标志为空闲。在本发明的资源管理中,某文件^^删除或者截短后,该文件中组织的 块资源可以直接为其它文件所用,从而减少了块资源的分配和回收次数, 有效提高了资源管理的效率。应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神 和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因 此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
权利要求
1.一种资源管理系统,包括下列部件基于文件资源组织部件,其用于存储具有空闲资源的文件的索引节点;文件操作部件,其用于根据所述基于文件资源组织部件中存储的所述索引节点直接进行资源管理。
2. 根据权利要求1所述的系统,其特征在于,还包括传统资源组织部 件和控制部件,其中所述传统资源组织部件用于存储系统资源状态;所述文件操作部件还用于根据所述传统资源组织部件的系统资源状 态进行资源管理;所述控制部件用于为所述文件操作部件选择是根据所述传统资源组
3. 根据权利要求2所述的系统,其特征在于,所述控制部件是根据文 件系统的请求和文件系统的资源状态进行所述选择的。
4. 根据权利要求2或3所述的系统,其特征在于,所述控制部件还用 于回收所述基于文件资源组织部件中的空闲资源。
5. 根据权利要求l或2所述的系统,其特征在于,所述基于文件资源 组织部件包括以下部件删除文件组织部件,用于存储已删除文件的索引节点; 截短文件组织部件,用于存储正在使用文件的索引节点。
6. —种利用权利要求5所述的资源管理系统创建目标文件的方法,其 特征在于,包括下列步骤11)判断所述删除文件组织部件内是否存在索引节点;12 )从所述删除文件组织部件存储的索引节点中搜寻空闲索引节点;13)分配所述空闲索引节点给目标文件。
7. 根据权利要求6所述的方法,其特征在于,所述步骤13)包含步骤131)把所述空闲索引节点从所述删除文件组织部件中移出; 132 )初始化所述空闲索引节点的索引节点属性; 133)初始化所述空闲索引节点的地址索引。
8. 根据权利要求6或7所述的方法,其特征在于,所述步骤13)还 包括步骤134) 判断所述空闲索引节点是否映射有块资源,如果所述空闲索引 节点映射有块资源,把所述映射的块资源状态设置为"空闲,,;135) 存储所述空闲索引节点至所述截短文件组织部件。
9. 根据权利要求6或7所述的方法,其特征在于,所述方法还包括步 骤14):如果所述删除文件组织部件内不存在索引节点,则根据系统资源 状态分配空闲索引节点给所述目标文件。
10. 根据权利要求6所述的方法,其特征在于,所述步骤12)优先选 择删除时间长且所包含的块资源数量同目标文件包含的块资源数量接近 的源文件的空闲索引节点。
11. 一种利用权利要求5所述的资源管理系统为目标文件分配块资源 的方法,其特征在于,包括如下步骤21 )判断所述目标文件地址索引中对应的逻辑位置是否存在空闲块资源;22 )如果所述目标文件地址索引中对应的逻辑位置存在空闲块资源, 则分配所述存在的空闲块资源给所述目标文件;23) 否则,根据所述删除文件组织部件或所述截短文件组织部件中存 储的具有空闲资源的文件的索引节点搜寻空闲块资源,把所述搜寻到的空 闲块资源分配给所述目标文件。
12. 根据权利要求11所述的方法,其特征在于,所述方法还包括步骤24) 如果所述目标文件地址索引中对应的逻辑位置不存在空闲块资 源,而且根据所述删除文件组织部件或所述截短文件组织部件中存储的具 有空闲资源的文件的索引节点搜寻不到空闲块资源,则根据系统资源状态 分配空闲块资源给所述目标文件。
13. —种利用权利要求5所述的资源管理系统回收文件块资源的方 法,其特征在于,包括如下步骤确定并回收所述文件中需要回收的块资源;存储所述文件的索引节点到所述截短文件组织部件。
14. 一种利用权利要求5所述的资源管理系统删除文件的方法,其特 征在于,存储所述文件的索引节点到所述删除文件组织部件。
全文摘要
本发明提供一种资源管理系统和方法。该资源管理系统包括基于文件资源组织部件,其用于存储具有空闲资源的文件的索引节点;文件操作部件,其用于根据所述基于文件资源组织部件中存储的所述索引节点直接进行资源管理。利用该系统进行资源管理,资源分配的结果可以被重用,提高了资源分配的效率;删除文件不必进行块资源回收,降低了资源回收的开销;大量减少了资源分配、回收过程中相关数据结构的修改操作,提高了资源管理速度。
文档编号G06F17/30GK101324893SQ20081011607
公开日2008年12月17日 申请日期2008年7月2日 优先权日2008年7月2日
发明者浏 刘, 张军伟, 张敬亮 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1