多个物理文件合并为一个逻辑文件的方法

文档序号:6382475阅读:279来源:国知局
专利名称:多个物理文件合并为一个逻辑文件的方法
多个物理文件合并为一个逻辑文件的方法技术领域
本发明属于计算机领域,主要关注增强文件的个性化存储和提高文件访问效率。
技术背景
很多应用中需要建立非常大尺寸的文件,例如TB级别的文件,但是往往单个物理存储介质本身就没有这么大的容量或者不允许单个文件具有这么大的尺寸(例如fat32文件系统最大支持的单个文件为2GB),因此需要将若干个物理存储介质上的物理文件数据合并为一个逻辑文件。另外,通过将一个大的文件分解为若干个部分存储在不同的存储介质上还有利于并行化访问文件的不同部分,提高计算机以及应用系统的性能。
已有的解决方案包括RAID技术、逻辑卷技术、LVM技术等,这些技术在数据块级别给出解决方案,实现一个逻辑文件分散在多个物理存储介质中的多个数据块中。
而本发明的原理不同于上述基于数据块级别技术,本发明基于已有的若干个文件系统基础上进一步建立逻辑文件,即基于文件系统级别,而不是数据块级别。
目前将一个文件分散为多个物理文件存储尚未有通用的解决方案,例如,一些数据库系统自己利用多个物理文件映射为一个数据库逻辑(或者表空间)文件。一般多依赖于具体的应用程序本身。
本发明基于文件系统给出一个将多个物理文件合并为一个逻辑文件的通用方法。 发明内容
本发明目的是为了增强文件的个性化存储和提高访问效率。本发明基于文件系统给出一个将多个物理文件合并为一个逻辑文件的方法,该方法具有通用性和广泛的适用性。
本发明给出的逻辑文件创建和管理方法,超越了单个存储设备的容量限制,也超越了单个物理文件系统的容量限制和单个物理文件的容量限制,并且可跨越本地存储设备的限制,通过网络实现将逻辑文件存储在网络环境下的多个存储设备中,从而构建足够大的逻辑文件,从而极大地方便地为上层应用程序提供构建大文件的统一方法,并可大大提高访问的并发效率。
I.多个物理文件合并为一个逻辑文件的方法,所述方法包括
第I、当创建逻辑文件时,需在物理文件系统上建立逻辑文件以及“逻辑文件的主配置文件”,简称“主配置文件”。逻辑文件中指明逻辑文件类型和主配置文件信息。一个逻辑文件对应有一个“逻辑文件的主配置文件”,逻辑文件的主配置文件中记录逻辑文件的全局信息以及逻辑文件对应的多个物理文件在物理文件系统中具体目录信息;
第2、当打开逻辑文件时,获知逻辑文件中存储的主配置文件信息,然后读取主配置文件,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件,简称“配置文件”。进一步在内存中建立“逻辑文件全局控制块”,“逻辑文件全局控制块”中包含一个“逻辑文件数据存储分布表”,“逻辑文件数据存储分布表”中记录逻辑文件的大小以及各离散数据段所对应的物理文件;
第3、当对逻辑文件写数据时,根据写访问请求的偏移量和长度,在内存中此逻辑文件的“逻辑文件数据存储分布表”中查找对应的一个或者多个物理文件实际偏移量和长度。
第3. I、若找到对应的一个或多个物理文件实际偏移量和长度,则将相应长度的数据依次写入一个或多个物理文件相应的偏移量所标明位置。若上述操作成功,写操作成功返回;否则写操作失败返回;
第3. 2、若未找到对应的一个或多个物理文件实际偏移量和长度,则根据内存中此逻辑文件的“逻辑文件全局控制块”中给定的写目录集合和写策略,选择其中的物理文件系统目录,在此目录中建立一个新的物理文件以及新物理文件对应的配置文件,将待写入的数据写入新的物理文件中,并更新此物理文件对应的配置文件信息。若上述操作成功,则进一步更新内存中此逻辑文件的“逻辑文件全局控制块”信息,写操作成功返回;否则写操作失败返回;
第3. 3、若写操作的部分数据找到对应的一个或多个物理文件实际偏移量和长度, 写操作的另外一部分数据未找到对应的一个或多个物理文件实际偏移量和长度,则将此写操作分成若干个子的写操作。对于找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3. I过程;对于未找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3. 2过程。若所有子的写操作都成功,则写操作成功返回;否则写操作失败返回;
第4、当读取逻辑文件时;根据读访问请求的偏移量和长度,在内存中此逻辑文件的“逻辑文件数据存储分布表”中查找对应的一个或多个物理文件实际偏移量和长度,若未查找到,则返回读失败;若查找到对应的一个或多个物理文件实际偏移量和长度,进一步读取“物理文件目录表”中对应的物理文件目录的“优先级”信息,然后按优先级依次读取一个或多个物理文件相应的偏移量和长度所标明的数据,并成功返回;
第5、关闭逻辑文件时,将内存中此逻辑文件的“逻辑文件全局控制块”信息更新到逻辑文件的主配置文件以及逻辑文件对应的多个物理文件的配置文件中;
第6、当删除逻辑文件时;需先读取逻辑文件,获知主配置文件信息,然后读取主配置文件,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件。根据这些信息在物理文件系统中依次删除关物理文件及物理文件所对应的配置文件,进一步删除“逻辑文件的主配置文件”,最后删除逻辑文件。
2.按照本发明提供的建立方法,其特征在于,逻辑文件的主配置文件主要包括如下信息逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录集合、 主物理文件目录集合、物理文件目录集合、写策略。其中,物理文件名前缀为逻辑文件所包含的所有物理文件的文件名前缀;单个物理文件大小最大值限制单个物理文件最大容量; 主物理文件目录集合为对逻辑文件可写操作的物理文件目录集合;物理文件目录集合为逻辑文件所包含的所有物理文件所对应的物理文件目录集合。
3.按照本发明提供的建立方法,所述的,针对逻辑文件所包含的所有物理文件,每个物理文件有一个对应的配置文件,主要包括如下信息物理文件大小、有效起始位置、逻辑文件偏移量、长度。其中,“有效起始位置”指逻辑文件在此物理文件中第一个字节有效数据的位置相对于物理文件起始的长度;“逻辑文件偏移量”指辑文件在此物理文件中第一个字节有效数据相对于逻辑文件起始的长度;“长度”指逻辑文件在此物理文件中第一个字节有效数据开始连续有效数据的最大长度。
4.按照本发明提供的建立方法,所述的,逻辑文件的主配置文件中的写策略指明对逻辑文件写操作过程中具体在主物理文件目录集合中的哪些目录中可涉及新建物理文件及配置文件,写策略包括随机选择写目录、依次轮换选择写目录、指定写目录、冗余写目录等,并可进一步扩充策略。
5.按照本发明提供的建立方法,所述的,每个已打开的逻辑文件在内存中有一个唯一对应的“逻辑文件全局控制块”,“逻辑文件全局控制块”包括如下信息逻辑文件inode 号、逻辑文件名、逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录表指针、物理文件目录表指针、数据存储分布表指针、写策略。其中,逻辑文件inode号为此逻辑文件的唯一索引号;主物理文件目录表指针指向“主物理文件目录表”,表明可写入的物理文件目录集合;物理文件目录表指针指向“物理文件目录表”,表明所有物理文件目录集合;数据存储分布表指针指向“逻辑文件数据存储分布表”。“主物理文件目录表”和 “物理文件目录表”中的每一个物理文件目录对应一个“优先级” “优先级”表明读操作的优先顺序,不同的物理文件目录可以有相同的“优先级”。
6.按照本发明提供的建立方法,所述的,“逻辑文件数据存储分布表”存放当前逻辑文件数据在多个物理文件中存储的实际情况,“逻辑文件数据存储分布表”包括如下信息物理文件目录、物理文件名、物理文件大小、有效起始位置、逻辑文件偏移量、长度。“逻辑文件数据存储分布表”的数据与逻辑文件所包含的所有物理文件的配置文件的数据一致,含义一致。
7.按照本发明提供的建立方法,所述的,逻辑文件所包含多个物理文件可以分散存储到多个不同的文件系统目录下,也可以存储到网络上的文件系统和存储空间中。本发明支持采用单独的计算装置对外提供逻辑文件服务,计算装置与各种物理存储装置直接线缆连接或者网络连接。
8.按照本发明提供的建立方法,所述的,逻辑文件支持任意的黑洞文件,即逻辑文件中部分偏移量及长度所指的数据无需存在。逻辑文件支持由高层应用程序将其由一个不带黑洞的文件转变为带黑洞的文件,也支持由带黑洞的文件转变为不带黑洞的文件。
9.按照本发明提供的建立方法,所述的,对逻辑文件的写操作可支持事务型写操作。具体方法如下
第9. I、建立一个新的事务;
第9. 2、根据写访问请求的偏移量和长度,并根据写策略,直接建立新的物理文件以及对应的配置文件,并写入实际数据;
第9. 3、若第9. 2操作失败,则回滚新事务,写操作失败返回;否则执行第9. 4 ;
第9. 4、在“逻辑文件数据存储分布表”中查找对应偏移量和长度的已存在的一个或多个物理文件,若不存在相应物理文件,则执行第9. 6 ;
第9. 5、若物理文件所包含的有效数据完全在中原始写访问请求的偏移量和长度范围内,则删除该物理文件及配置文件,并在“逻辑文件数据存储分布表”中删除对应信息; 若物理文件所包含的有效数据部分在写访问请求的偏移量和长度范围内,则在“逻辑文件数据存储分布表”中将此物理文件的偏移量和长度信息中去除原始写访问请求的偏移量和长度范围;若操作失败,则回滚新事务,写操作失败返回;否则执行第9. 6 ;
第9. 6、将新的物理文件以及配置文件中相关信息添加到内存中此逻辑文件的 “逻辑文件数据存储分布表”中;若操作失败,则回滚新事务,写操作失败返回;否则执行第 9. 7 ;
第9. 7、新事务成功提交,写操作成功返回。
10.按照本发明提供的建立方法,所述的,逻辑文件可支持多个物理文件的冗余存储,即多个物理文件包含逻辑文件中相同的数据,这一特征由写策略的“冗余写目录”来标识。此时写操作将向符合条件的多个物理文件中写入相同的数据,而读操作时按照多个物理文件所在物理目录的优先级来按序读取。
本发明的优点和积极效果
本发明能够实现文件的个性化存储和提高文件访问效率。
目前将一个文件分散为多个物理文件存储尚未有通用的解决方案,一般取决于具体的应用程序本身。本发明则基于已有的文件系统实现将多个物理文件合并成一个统一的逻辑文件的方法,且独立于应用程序,因此更具有广泛应用价值。










图I是本发明中多个物理文件合并为一个逻辑文件的示意图。2是本发明中多个物理文件合并为一个逻辑文件的物理存储拓扑示意图。 3是本发明中多个物理文件合并为一个逻辑文件的技术架构示意图。4是本发明中逻辑文件在内存中的“逻辑文件数据存储分布表”示意图。5是本发明中多个物理文件合并为逻辑文件Myfile的实例I。6是本发明中实例I的主配置文件Myfile. uf. conf。7是本发明中实例I的物理文件I的配置文件Myfile. uf. 01. conf。8是本发明中实例I的物理文件I的配置文件Myfile. uf. 02. conf。9是本发明中实例I的物理文件I的配置文件Myfile. uf. 03. conf。
具体实施方式
本发明提供了一种多个物理文件合并为一个逻辑文件的方法。
为能进一步了解本发明的技术内容、特点及功效,兹列举以下应用实例,并配合附图详细说明。
如图I所示一个逻辑文件由主配置文件、多个物理文件以及配置文件组成。一个逻辑文件可以分为若干个物理文件以及对应配置文件,这些物理文件以及配置文件可以分散到多个存储设备中,如图2,若干个物理文件以及对应配置文件存储在存储介质I中的多个目录中,若干个物理文件以及对应配置文件存储在存储介质N中的多个目录中,甚至若干个物理文件以及对应配置文件存储在网络存储介质X中的多个目录中。
如图5所示,逻辑文件Myfile当前由本地文件系统之目录b下的Myfile. uf. 01、 本地文件系统之目录c下Myfile. uf. 02、网络文件系统nfs之目录d下的Myfile. uf03等三个物理文件组成。上述三个物理文件相应的配置文件分别为Myfile. uf. 01. conf、Myfile.uf. 02. conf、和Myfile. uf. 03. conf。而逻辑文件Myfile 的主配置文件为 Myfile. uf. conf。
从图1、2可以看出本发明给出的逻辑文件创建和管理方法,超越了单个存储设备的容量限制,也超越了单个物理文件系统的容量限制和单个物理文件的容量限制,并且可跨越本地存储设备的限制,通过网络实现将逻辑文件存储在网络环境下的多个存储设备中,从而构建足够大的逻辑文件。
“逻辑文件”指从应用程序角度看该对象为文件系统中的一个文件对象。具体可以采用三种成熟框架来支持“逻辑文件”的实现,如图3。第一种方法,在操作系统用户态下在 fuse框架基础上为上层应用程序提供文件系统以及文件服务;第二种方法,在操作系统内核态下在虚拟文件系统VFS框架基础上为上层应用程序提供文件系统以及文件服务;第三种方法,在操作系统内核态下更底册的wrapFS框架基础上为上层应用程序提供文件系统以及文件服务。本发明支持上述三种框架下提供文件系统以及文件服务基础上的多个物理文件合并为一个逻辑文件的方法。
本发明可以采用单独的计算装置对外提供逻辑文件服务,计算装置与各种物理存储装置直接线缆连接或者网络连接。
结合图5-9所示,逻辑文件Myfile访问的具体实例如下。
I.基于上述三种技术框架实现“多个物理文件合并为一个逻辑文件”,具体方法
第I、当创建逻辑文件Myfile时,需在物理文件系统上建立逻辑文件Myfile以及 “逻辑文件的主配置文件Myfile. uf. conf ”,简称“主配置文件”。逻辑文件中指明逻辑文件类型和主配置文件信息。一个逻辑文件对应有一个“逻辑文件的主配置文件”,逻辑文件的主配置文件中记录逻辑文件的全局信息以及逻辑文件对应的多个物理文件在物理文件系统中具体目录信息,Myfile. uf. conf的具体内容如图6 ;
第2、当打开逻辑文件Myfile时,获知逻辑文件中存储的主配置文件(Myfile. uf. conf)信息,然后读取主配置文件Myfile. uf. conf,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件(包括Myfile. uf. 01. conf, Myfile. uf. 02. conf, Myfile. uf. 03. conf ),简称“配置文件”。进一步在内存中建立“逻辑文件全局控制块”,“逻辑文件全局控制块”中包含一个“逻辑文件数据存储分布表”,“逻辑文件数据存储分布表”中记录逻辑文件的大小以及各离散数据段所对应的物理文件,如图4 ;
第3、当对逻辑文件Myfile写数据时,根据写访问请求的偏移量和长度(由上层的用户应用程序来提供),在内存中此逻辑文件的“逻辑文件数据存储分布表”中查找对应的一个或者多个物理文件实际偏移量和长度(如图4的“逻辑文件数据存储分布表”所示)。
第3. I、若找到对应的一个或多个物理文件实际偏移量和长度,则将相应长度的数据依次写入一个或多个物理文件相应的偏移量所标明位置。若上述操作成功,写操作成功返回;否则写操作失败返回;
第3. 2、若未找到对应的一个或多个物理文件实际偏移量和长度,则根据内存中此逻辑文件的“逻辑文件全局控制块”中给定的写目录集合和写策略(如图4中主物理文件目录表),选择其中的物理文件系统目录,在此目录中建立一个新的物理文件以及新物理文件对应的配置文件,将待写入的数据写入新的物理文件中,并更新此物理文件对应的配置文件信息。若上述操作成功,则进一步更新内存中此逻辑文件的“逻辑文件全局控制块”信息, 写操作成功返回;否则写操作失败返回;
第3. 3、若写操作的部分数据找到对应的一个或多个物理文件实际偏移量和长度, 写操作的另外一部分数据未找到对应的一个或多个物理文件实际偏移量和长度,则将此写操作分成若干个子的写操作。对于找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3. I过程;对于未找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3. 2过程。若所有子的写操作都成功,则写操作成功返回;否则写操作失败返回;
第4、当读取逻辑文件Myfile时;根据读访问请求的偏移量和长度,在内存中此逻辑文件的“逻辑文件数据存储分布表”(如图4)中查找对应的一个或多个物理文件实际偏移量和长度,若未查找到,则返回读失败;若查找到对应的一个或多个物理文件实际偏移量和长度,进一步读取“物理文件目录表”中对应的物理文件目录的“优先级”信息,然后按优先级依次读取一个或多个物理文件相应的偏移量和长度所标明的数据,并成功返回;
第5、关闭逻辑文件Myfile时,将内存中此逻辑文件的“逻辑文件全局控制块”(如图4)信息更新到逻辑文件的主配置文件Myfile. uf. conf以及逻辑文件对应的多个物理文件的配置文件(Myfile. uf. 01. conf, Myfile. uf. 02. conf, Myfile. uf. 03. conf)中;
第6、当删除逻辑文件Myfile时;需先读取逻辑文件Myfile,获知主配置文件信息,然后读取主配置文件Myfile. uf. conf,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件(Myfile. uf. 01. conf, Myfile. uf. 02. conf, Myfile. uf. 03. conf)。根据这些信息在物理文件系统中依次删除关物理文件(MyfiIe. uf. OLMyfile. uf. 02,Myfile. uf. 03)及物理文件所对应的配置文件(Myfile. uf. 01. conf, Myfile. uf. 02. conf, Myfile. uf. 03. conf),进一步删除“逻辑文件的主配置文件”Myfile. ufconf,最后删除逻辑文件Myfile。
2.按照本发明提供的建立方法,所述的,逻辑文件的主配置文件Myfile. uf. conf 主要包括如下信息(如图6):逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录集合、主物理文件目录集合、物理文件目录集合、写策略。其中,物理文件名前缀为逻辑文件所包含的所有物理文件的文件名前缀;单个物理文件大小最大值限制单个物理文件最大容量;主物理文件目录集合为对逻辑文件可写操作的物理文件目录集合;物理文件目录集合为逻辑文件所包含的所有物理文件所对应的物理文件目录集合。
在本实例中,逻辑文件Myfile中主物理目录集合为K本地文件系统目录a,优先级1),(本地文件系统目录c,优先级I)},写策略为“随机”,因此每次写操作创建新的物理文件时可以随机选择“本地文件系统目录a”和“本地文件系统目录c”中的一个目录来创建新的物理文件。
3.按照本发明提供的建立方法,所述的,针对逻辑文件所包含的所有物理文件 (Myfile. uf. 01,Myfile. uf. 02,Myfile. uf. 03),每个物理文件有一个对应的配置文件 (Myfile. uf. 01. conf, Myfile. uf02. conf, Myfile. uf. 03. conf),配置文件主要包括如下信息(如图7、8、9所示):物理文件大小、有效起始位置、逻辑文件偏移量、长度。其中,“有效起始位置”指逻辑文件在此物理文件中第一个字节有效数据的位置相对于物理文件起始的长度;“逻辑文件偏移量”指辑文件在此物理文件中第一个字节有效数据相对于逻辑文件起始的长度;“长度”指逻辑文件在此物理文件中第一个字节有效数据开始连续有效数据的最大长度。
4.按照本发明提供的建立方法,所述的,逻辑文件的主配置文件中的写策略指明对逻辑文件写操作过程中具体在主物理文件目录集合中的哪些目录中可涉及新建物理文件及配置文件,写策略包括随机选择写目录、依次轮换选择写目录、指定写目录、冗余写目录等,并可进一步扩充策略。
在本实例中,如图6所示(逻辑文件的主配置文件),逻辑文件Myfile中主物理目录集合为K本地文件系统目录a,优先级1),(本地文件系统目录C,优先级I)},写策略为 “随机”,因此每次写操作创建新的物理文件时可以随机选择“本地文件系统目录a”和“本地文件系统目录c”中的一个目录来创建新的物理文件。
5.按照本发明提供的建立方法,所述的,每个已打开的逻辑文件在内存中有一个唯一对应的“逻辑文件全局控制块”,“逻辑文件全局控制块”包括如下信息逻辑文件inode 号、逻辑文件名、逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录表指针、物理文件目录表指针、数据存储分布表指针、写策略。其中,逻辑文件inode号为此逻辑文件的唯一索引号;主物理文件目录表指针指向“主物理文件目录表”,表明可写入的物理文件目录集合;物理文件目录表指针指向“物理文件目录表”,表明所有物理文件目录集合;数据存储分布表指针指向“逻辑文件数据存储分布表”。“主物理文件目录表”和 “物理文件目录表”中的每一个物理文件目录对应一个“优先级” “优先级”表明读操作、写操作的优先顺序,不同的物理文件目录可以有相同的“优先级”。“逻辑文件全局控制块”如图4所示。
6.按照本发明提供的建立方法,所述的,“逻辑文件数据存储分布表”存放当前逻辑文件数据在多个物理文件中存储的实际情况,“逻辑文件数据存储分布表”包括如下信息物理文件目录、物理文件名、物理文件大小、有效起始位置、逻辑文件偏移量、长度。“逻辑文件数据存储分布表”的数据与逻辑文件所包含的所有物理文件的配置文件的数据一致,含义一致。“逻辑文件数据存储分布表”如图4所示。
7.按照本发明提供的建立方法,所述的,逻辑文件所包含多个物理文件可以分散存储到多个不同的文件系统目录下,也可以存储到网络上的文件系统和存储空间中。本发明支持采用单独的计算装置对外提供逻辑文件服务,计算装置与各种物理存储装置直接线缆连接或者网络连接。在本实例中,如图5所示,逻辑文件Myfile的部分数据存储在“网络文件系统nfs之目录d”下的Myfile. uf03中,其对应的配置文件为Myfile. uf03. conf。 本发明支持将一个逻辑文件的数据分散存储在任意物理文件系统甚至网络中。
8.按照本发明提供的建立方法,所述的,逻辑文件支持任意的黑洞文件,即逻辑文件中部分偏移量及长度所指的数据无需存在。逻辑文件支持由高层应用程序将其由一个不带黑洞的文件转变为带黑洞的文件,也支持由带黑洞的文件转变为不带黑洞的文件。
在本实例中,如图6、7、8、9所示,逻辑文件Myfile的大小为10M,物理文件 Myfile. uf. 01的有效数据为2M (逻辑文件的偏移量为0),物理文件Myf ile. uf. 01的有效数据为4M (逻辑文件的偏移量为3M),物理文件Myfile. uf. 01的有效数据为3M (逻辑文件的偏移量为7M)。由此可以看出逻辑文件Myfile中偏移量为2M长度为IM尚未有任何数据,因此此逻辑文件Myfile为带洞的文件,即黑洞文件。
9.按照本发明提供的建立方法,所述的,对逻辑文件的写操作可支持事务型写操作。具体方法如下
第9.1、建立一个新的事务;
第9. 2、根据写访问请求的偏移量和长度,并根据写策略,直接建立新的物理文件以及对应的配置文件,并写入实际数据;
第9. 3、若第9. 2操作失败,则回滚新事务,写操作失败返回;否则执行第9. 4 ;
第9. 4、在“逻辑文件数据存储分布表”中查找对应偏移量和长度的已存在的一个或多个物理文件,若不存在相应物理文件,则执行第9. 6 ;
第9. 5、若物理文件所包含的有效数据完全在中原始写访问请求的偏移量和长度范围内,则删除该物理文件及配置文件,并在“逻辑文件数据存储分布表”中删除对应信息; 若物理文件所包含的有效数据部分在写访问请求的偏移量和长度范围内,则在“逻辑文件数据存储分布表”中将此物理文件的偏移量和长度信息中去除原始写访问请求的偏移量和长度范围;若操作失败,则回滚新事务,写操作失败返回;否则执行第9. 6 ;
第9. 6、将新的物理文件以及配置文件中相关信息添加到内存中此逻辑文件的 “逻辑文件数据存储分布表”中;若操作失败,则回滚新事务,写操作失败返回;否则执行第 9. 7 ;
第9. 7、新事务成功提交,写操作成功返回。在本实例中,当对逻辑文件Myfile进行写操作,覆盖偏移量(Γ(2Μ-1)的数据时,可以不覆盖本地文件系统之目录b下的物理文件Myfile. uf. 01,而是先建立一个新的物理文件Myfile. uf. 04存储新的2M数据以及对应的配置文件Myfile. uf. 04. conf,具体在哪个目录下建立新的物理文件Myfile. uf. 04 和Myfile. uf. 04. conf,根据图6 (主配置文件Myfile. uf. conf)、图4 (逻辑文件全局控制块)中主物理目录集合为K本地文件系统目录a,优先级I),(本地文件系统目录C,优先级I)},写策略为“随机”,因此每次写操作创建新的物理文件时可以随机选择“本地文件系统目录a”和“本地文件系统目录c”中的一个目录来创建新的物理文件Myfile. uf. 04和 Myfile. uf. 04. conf ;然后在图4 (逻辑文件全局控制块)中的逻辑文件数据存储分布表中增加Myfile. uf. 04和Myfile. uf. 04. conf ;并进一步查询偏移量0 (2M_1)的已有数据所在的旧的物理文件(即Myfile. uf. 01和Myfile. uf. 01. conf),然后删除旧的物理文件(即 Myfile. uf. 01和Myfile. uf. 01. conf )以及去除在图4(逻辑文件全局控制块)中的逻辑文件数据存储分布表的记录,完成写操作。当创建和写新的物理文件Myfile. uf. 04和Myfile. uf. 04. conf失败时,不会影响逻辑文件Myf ile已有的完整数据(包括偏移量(Γ(2Μ_1)的数据),从而保证文件操作的可靠性,有效支持事务性特征。
10.按照本发明提供的建立方法,所述的,逻辑文件可支持多个物理文件的冗余存储,即多个物理文件包含逻辑文件中相同的数据,这一特征由写策略的“冗余写目录”来标识。此时写操作将向符合条件的多个物理文件中写入相同的数据,而读操作时按照多个物理文件所在物理目录的优先级来按序读取。
在本实例中,接前述第9特征中实例,当写策略的“冗余写目录”时,对逻辑文件 Myfile进行写操作,覆盖偏移量(Γ(2Μ-1)的数据操作成功完成,即新数据写入到新的物理文件Myfile. uf. 04中,同时也会进一步向覆盖偏移量(Γ (2M-1)的旧数据所存储的物理文件Myfile. uf. 01写入,此时Myfile. uf. 01和Myfile. uf. 04具有相同的覆盖偏移量 (Γ(2Μ-1)的最新数据。此后,若有对偏移量(Γ(2Μ-1)中部分或全部的读操作时,可以并行地从这两个物理文件中按优先级读取(或同时读取当优先级相同时),从而提高文件访问效率。
考虑到在此公开的对本发明的描述和特例的实施例,本发明的其他实施例对于本领域的技术人员来说是显而意见的。这些说明和实施例仅作为例子来考虑,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.多个物理文件合并为一个逻辑文件的方法,其特征在于,所述方法包括 第I、当创建逻辑文件时,需在物理文件系统上建立逻辑文件以及“逻辑文件的主配置文件”,简称“主配置文件”;逻辑文件中指明逻辑文件类型和主配置文件信息;一个逻辑文件对应有一个“逻辑文件的主配置文件”,逻辑文件的主配置文件中记录逻辑文件的全局信息以及逻辑文件对应的多个物理文件在物理文件系统中具体目录信息; 第2、当打开逻辑文件时,获知逻辑文件中存储的主配置文件信息,然后读取主配置文件,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件,简称“配置文件”;进一步在内存中建立“逻辑文件全局控制块”,“逻辑文件全局控制块”中包含一个“逻辑文件数据存储分布表”,“逻辑文件数据存储分布表”中记录逻辑文件的大小以及各离散数据段所对应的物理文件; 第3、当对逻辑文件写数据时,根据写访问请求的偏移量和长度,在内存中此逻辑文件的“逻辑文件数据存储分布表”中查找对应的一个或者多个物理文件实际偏移量和长度;第3. I、若找到对应的一个或多个物理文件实际偏移量和长度,则将相应长度的数据依次写入一个或多个物理文件相应的偏移量所标明位置。若上述操作成功,写操作成功返回;否则写操作失败返回; 第3. 2、若未找到对应的一个或多个物理文件实际偏移量和长度,则根据内存中此逻辑文件的“逻辑文件全局控制块”中给定的写目录集合和写策略,选择其中的物理文件系统目录,在此目录中建立一个新的物理文件以及新物理文件对应的配置文件,将待写入的数据写入新的物理文件中,并更新此物理文件对应的配置文件信息;若上述操作成功,则进一步更新内存中此逻辑文件的“逻辑文件全局控制块”信息,写操作成功返回;否则写操作失败返回; 第3. 3、若写操作的部分数据找到对应的一个或多个物理文件实际偏移量和长度,写操作的另外一部分数据未找到对应的一个或多个物理文件实际偏移量和长度,则将此写操作分成若干个子的写操作;对于找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3. I过程;对于未找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3. 2过程;若所有子的写操作都成功,则写操作成功返回;否则写操作失败返回; 第4、当读取逻辑文件时;根据读访问请求的偏移量和长度,在内存中此逻辑文件的“逻辑文件数据存储分布表”中查找对应的一个或多个物理文件实际偏移量和长度,若未查找到,则返回读失败;若查找到对应的一个或多个物理文件实际偏移量和长度,进一步读取“物理文件目录表”中对应的物理文件目录的“优先级”信息,然后按优先级依次读取一个或多个物理文件相应的偏移量和长度所标明的数据,并成功返回; 第5、关闭逻辑文件时,将内存中此逻辑文件的“逻辑文件全局控制块”信息更新到逻辑文件的主配置文件以及逻辑文件对应的多个物理文件的配置文件中; 第6、当删除逻辑文件时;需先读取逻辑文件,获知主配置文件信息,然后读取主配置文件,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件。根据这些信息在物理文件系统中依次删除关物理文件及物理文件所对应的配置文件,进一步删除“逻辑文件的主配置文件”,最后删除逻辑文件。
2.根据权利要求I所述的方法,其特征在于,逻辑文件的主配置文件主要包括如下信息逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录集合、主物理文件目录集合、物理文件目录集合、写策略;其中,物理文件名前缀为逻辑文件所包含的所有物理文件的文件名前缀;单个物理文件大小最大值限制单个物理文件最大容量;主物理文件目录集合为对逻辑文件可写操作的物理文件目录集合;物理文件目录集合为逻辑文件所包含的所有物理文件所对应的物理文件目录集合。
3.根据权利要求I所述的方法,其特征在于,针对逻辑文件所包含的所有物理文件,每个物理文件有一个对应的配置文件,主要包括如下信息物理文件大小、有效起始位置、逻辑文件偏移量、长度;其中,“有效起始位置”指逻辑文件在此物理文件中第一个字节有效数据的位置相对于物理文件起始的长度;“逻辑文件偏移量”指辑文件在此物理文件中第一个字节有效数据相对于逻辑文件起始的长度;“长度”指逻辑文件在此物理文件中第一个字节有效数据开始连续有效数据的最大长度。
4.根据权利要求1、2所述的方法,其特征在于,逻辑文件的主配置文件中的写策略指明对逻辑文件写操作过程中具体在主物理文件目录集合中的哪些目录中可涉及新建物理文件及配置文件,写策略包括随机选择写目录、依次轮换选择写目录、指定写目录、冗余写目录等,并可进一步扩充策略。
5.根据权利要求I所述的方法,其特征在于,每个已打开的逻辑文件在内存中有一个唯一对应的“逻辑文件全局控制块”,“逻辑文件全局控制块”包括如下信息逻辑文件inode号、逻辑文件名、逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录表指针、物理文件目录表指针、数据存储分布表指针、写策略;其中,逻辑文件inode号为此逻辑文件的唯一索引号;主物理文件目录表指针指向“主物理文件目录表”,表明可写入的物理文件目录集合;物理文件目录表指针指向“物理文件目录表”,表明所有物理文件目录集合;数据存储分布表指针指向“逻辑文件数据存储分布表”;“主物理文件目录表”和“物理文件目录表”中的每一个物理文件目录对应一个“优先级” “优先级”表明读操作的优先顺序,不同的物理文件目录可以有相同的“优先级”。
6.根据权利要求1,5所述的方法,其特征在于,“逻辑文件数据存储分布表”存放当前逻辑文件数据在多个物理文件中存储的实际情况,“逻辑文件数据存储分布表”包括如下信息物理文件目录、物理文件名、物理文件大小、有效起始位置、逻辑文件偏移量、长度;“逻辑文件数据存储分布表”的数据与逻辑文件所包含的所有物理文件的配置文件的数据一致,含义一致。
7.根据权利要求1,3所述的方法,其特征在于,逻辑文件所包含多个物理文件可以分散存储到多个不同的文件系统目录下,也可以存储到网络上的文件系统和存储空间中;本发明支持采用单独的计算装置对外提供逻辑文件服务,计算装置与各种物理存储装置直接线缆连接或者网络连接。
8.根据权利要求I所述的方法,其特征在于,逻辑文件支持任意的黑洞文件,即逻辑文件中部分偏移量及长度所指的数据无需存在;逻辑文件支持由高层应用程序将其由一个不带黑洞的文件转变为带黑洞的文件,也支持由带黑洞的文件转变为不带黑洞的文件。
9.根据权利要求I所述的方法,其特征在于,对逻辑文件的写操作可支持事务型写操作; 具体方法如下第9. I、建立一个新的事务; 第9. 2、根据写访问请求的偏移量和长度,并根据写策略,直接建立新的物理文件以及对应的配置文件,并写入实际数据; 第9. 3、若第9. 2操作失败,则回滚新事务,写操作失败返回;否则执行第9. 4 ; 第9. 4、在“逻辑文件数据存储分布表”中查找对应偏移量和长度的已存在的一个或多个物理文件,若不存在相应物理文件,则执行第9. 6 ; 第9. 5、若物理文件所包含的有效数据完全在中原始写访问请求的偏移量和长度范围内,则删除该物理文件及配置文件,并在“逻辑文件数据存储分布表”中删除对应信息;若物理文件所包含的有效数据部分在写访问请求的偏移量和长度范围内,则在“逻辑文件数据存储分布表”中将此物理文件的偏移量和长度信息中去除原始写访问请求的偏移量和长度范围;若操作失败,则回滚新事务,写操作失败返回;否则执行第9. 6 ; 第9. 6、将新的物理文件以及配置文件中相关信息添加到内存中此逻辑文件的“逻辑文件数据存储分布表”中;若操作失败,则回滚新事务,写操作失败返回;否则执行第9. 7 ; 第9. 7、新事务成功提交,写操作成功返回。10.根据权利要求I所述的方法,其特征在于,逻辑文件可支持多个物理文件的冗余存储,即多个物理文件包含逻辑文件中相同的数据,这一特征由写策略的冗余写目录来标识;此时写操作将向符合条件的多个物理文件中写入相同的数据,而读操作时按照多个物理文件所在物理目录的优先级来按序读取。
全文摘要
本发明公开了一种将多个物理文件合并为一个逻辑文件的方法,属于计算机领域。将多个存储设备上的多个物理文件合并为一个逻辑文件的方法包括建立逻辑文件时,在物理文件系统上建立逻辑文件及逻辑文件的主配置文件,并在逻辑文件中指明主配置文件信息;删除逻辑文件时,在物理文件系统上删除逻辑文件、主配置文件、相关物理文件及配置文件;当读写逻辑文件时,将对逻辑文件访问请求的偏移量和长度转化为对应的物理文件实际偏移量和长度,写操作需要新建立物理文件时,同时建立相对应的配置文件。本发明能够有效地将逻辑文件分散在多个存储设备上多个文件系统的多个目录中从而实现个性化存储,并提高逻辑文件的访问速度。
文档编号G06F17/30GK102982151SQ201210493369
公开日2013年3月20日 申请日期2012年11月27日 优先权日2012年11月27日
发明者李旭东, 史宝旭 申请人:南开大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1