CN112286871B - 面向多主机fat文件系统的簇分配方法及系统 - Google Patents
面向多主机fat文件系统的簇分配方法及系统 Download PDFInfo
- Publication number
- CN112286871B CN112286871B CN202011618094.0A CN202011618094A CN112286871B CN 112286871 B CN112286871 B CN 112286871B CN 202011618094 A CN202011618094 A CN 202011618094A CN 112286871 B CN112286871 B CN 112286871B
- Authority
- CN
- China
- Prior art keywords
- cluster
- host
- pool
- application request
- fat
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/356—Switches specially adapted for specific applications for storage area networks
- H04L49/357—Fibre channel switches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向多主机FAT文件系统的簇分配方法及系统,方法应用于面向多主机FAT文件系统的FAT共享系统,所述FAT共享系统包括主机端和独立于所述主机端之外的存储模块端,所述存储模块端与所述主机端通信连接,所述存储模块端存储有FAT表;所述方法,包括:为每个所述主机端在所述FAT表的簇中预分配不重叠的簇域;侦测所述主机端发送的簇池申请请求;根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配。本发明的技术方案旨在解决多主机下FAT文件系统交互频繁导致的写数据效率低下的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种面向多主机FAT文件系统的簇分配方法和一种面向多主机FAT文件系统的FAT共享系统。
背景技术
FAT(File Allocation Table,文件配置表)是一个通用的文件系统,目前市场上现有的FAT文件系统只能实现单主机下的文件系统操作,当进行多主机共享访问时,各个主机之间会形成读写冲突,有极大可能会造成数据覆盖、文件损坏,无法保证数据安全性。因此,FAT文件系统无法正确处理多主机请求,不支持多主机请求。
对于每一个主机,由于FAT文件系统中的簇是逐个分配的,当写大文件或多个小文件时需要多次向存储模块申请资源,导致交互频繁,写数据效率大大降低。因此,多主机下FAT文件系统交互频繁导致了写数据效率低下的弊端。
发明内容
本发明的主要目的在于提供一种面向多主机FAT文件系统的簇分配方法,旨在解决多主机下FAT文件系统交互频繁导致的写数据效率低下的问题。
为实现上述目的,本发明提供的面向多主机FAT文件系统的簇分配方法应用于面向多主机FAT文件系统的FAT共享系统,所述FAT共享系统包括主机端和独立于所述主机端之外的存储模块端,所述存储模块端与所述主机端通信连接,所述存储模块端存储有FAT表;所述方法,包括如下步骤:
为每个所述主机端在所述FAT表的簇中预分配不重叠的簇域;
侦测所述主机端发送的簇池申请请求;
根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配。
优选地,所述为每个所述主机端在所述FAT表的簇中预分配不重叠的簇域的步骤,包括:
获取所述主机端的数量;
根据所述主机端的数量,为每个所述主机端在所述FAT表的簇中预分配长度相等且不重叠的簇域;
记录每个所述主机端分配簇域的起始簇地址、终止簇地址和空闲簇个数。
优选地,所述根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配的步骤,包括:
获取设定的簇池长度;
根据所述簇池申请请求,按照预设顺序对发送簇池申请请求的主机端分配的簇域进行遍历操作,将遍历过程中发现的空闲簇放入到连续簇池或离散簇池,将达到所述簇池长度的所述连续簇池或所述离散簇池标记为待分配簇池;
将所述待分配簇池分配给发送所述簇池申请请求的主机端。
优选地,所述根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配的步骤之前,还包括:
判断所述主机端的簇池是否仍有可用簇;
若否,则执行所述根据所述簇池申请请求和发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配的步骤。
优选地,所述根据所述簇池申请请求,按照预设顺序对发送簇池申请请求的主机端分配的簇域进行遍历操作,将遍历过程中发现的空闲簇放入到连续簇池或离散簇池,将达到所述簇池长度的所述连续簇池或所述离散簇池标记为待分配簇池的步骤,包括:
根据所述簇池申请请求,从发送簇池申请请求的主机端分配的簇域的起始簇地址开始,依次侦测所述簇域中簇值为零的空闲簇;
在发现第一个所述空闲簇后,将连续簇长度设置为1,并继续对下一个簇进行侦测;
若下一个所述空闲簇的簇号与上一个所述空闲簇的簇号连续,则将各所述空闲簇组成的簇整体标记为连续簇,并对所述连续簇长度加1,直至所述连续簇的长度达到簇池长度时,将所述连续簇放入连续簇池;
若下一个所述空闲簇的簇号与上一个所述空闲簇的簇号不连续,则将所述连续簇的长度清零,并将各所述空闲簇组成的簇整体标记为离散簇,并将所述离散簇放入离散簇池;
将达到所述簇池长度的所述连续簇池或所述离散簇池标记为待分配簇池。
优选地,所述根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配的步骤之前,还包括:
将各个所述簇池申请请求加入所述存储模块端的任务队列;
按照预设规则对所述任务队列中存在的各个所述簇池申请请求进行排序;
所述根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配的步骤,包括:
根据各个所述簇池申请请求的排序,以及每一个当前处理顺序的所述簇池申请请求对应的所述主机端分配的簇域,对每一个当前处理顺序的所述簇池申请请求对应的所述主机端进行簇池分配。
优选地,所述方法,还包括:
判断发送簇池申请请求的主机端对应的簇域是否分配完;
若是,则对与所述存储模块端连接的其他主机端分配的簇域进行划分,以从其他主机端分配的簇域中划分部分簇域;
将所述部分簇域作为分配给发送簇池申请请求的主机端的新的簇域。
优选地,所述方法,还包括:
获取设定的簇单位;
按照设定的簇单位,将所述FAT表所映射的地址空间进行划分。
为实现上述目的,本发明还提供一种面向多主机FAT文件系统的FAT共享系统,应用上述任一项所述的面向多主机FAT文件系统的簇分配方法;所述FAT共享系统包括主机端和独立于所述主机端之外的存储模块端,所述存储模块端与所述主机端通信连接,所述存储模块端存储有FAT表;
所述存储模块端用于为每个所述主机端在所述FAT表的簇中预分配不重叠的簇域,侦测所述主机端发送的簇池申请请求,并根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配;
所述主机端用于发送簇池申请请求,并根据分配的簇池对所述FAT表进行写操作。
优选地,每个所述主机端分别通信连接光纤通道交换机,所述光纤通道交换机通信连接所述存储模块端;所述存储模块端包括Xilinx FPGA 7K325T、飞腾CPU FT2000/4和SATA SSD存储模块。
在本发明的技术方案中,将原本设于主机端的FAT文件系统进行划分,其中FAT文件系统中的FAT表设置于独立的存储模块端,并在存储模块端设置FAT表管理模块对各个主机端发起的针对FAT资源的读写命令进行管理。而FAT文件系统中的文件操作模块、读写模块和接口,仍然保留在主机端,以实现FAT表向各个主机端的共享。进一步的,FAT表管理模块用于将接收到的各个所述主机端发送的所述读写命令加入任务队列,以逐个处理所述任务队列中的各个所述读写命令,并从所述存储模块获取所述FAT表,将所述FAT表返回至当前处理的所述读写命令对应的所述主机端,因此,FAT表一次只能对一个主机端进行资源共享,所述FAT表中存储有所述FAT文件的实际读写地址,获取到FAT表的主机端才可以根据读写需要进行读写操作,以避免各个主机端之间形成读写冲突,避免各个主机端造成FAT表的数据覆盖。进一步的,本发明为每个与所述存储模块端通信连接的主机端,都在FAT表的簇中预分配不重叠的簇域,在侦测到有所述主机端向所述存储模块端发送簇池申请请求时,根据发送簇池申请请求的所述主机端分配的簇域,对发送簇池申请请求的所述主机端进行簇池分配,由于簇池存在多个簇,因此,每个主机端一次可以申请到多个簇,降低了主机端和存储模块端的交互次数,提高了写数据效率。进一步的,本发明中为每个主机端,都在FAT表的簇中预分配了不重叠的簇域,当多主机端同时有写请求时,每个主机端都有自己分配的簇域,不会造成多个主机的簇地址交叉分配,有利于最大化地保证同一文件的簇链连续,避免数据过于分散,提高了文件的搜索和读效率。
附图说明
图1为本发明面向多主机FAT文件系统的簇分配方法第一实施例的流程示意图;
图2为本发明面向多主机FAT文件系统的FAT共享系统一实施例的模块结构示意图;
图3为本发明一实施例中各主机端的簇域分配示意图;
图4为本发明一实施例中FAT表中各簇分配至离散簇池或连续簇池的示意图;
图5为本发明一实施例的整体流程图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“单元”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“单元”、“部件”或“单元”可以混合地使用。
请参阅图1、图2和图3,为实现上述目的,本发明的第一实施例提供一种面向多主机FAT文件系统的簇分配方法,应用于面向多主机FAT文件系统的FAT共享系统,所述FAT共享系统包括主机端和独立于所述主机端之外的存储模块端,所述存储模块端与所述主机端通信连接,所述存储模块端存储有FAT表;所述方法,包括如下步骤:
步骤S10,为每个所述主机端在所述FAT表的簇中预分配不重叠的簇域;
步骤S20,侦测所述主机端发送的簇池申请请求;
步骤S30,根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配。
在本发明的技术方案中,将原本设于主机端的FAT文件系统进行划分,其中FAT文件系统中的FAT表设置于独立的存储模块端,并在存储模块端设置FAT表管理模块对各个主机端发起的针对FAT资源的读写命令进行管理。而FAT文件系统中的文件操作模块、读写模块和接口,仍然保留在主机端,以实现FAT表向各个主机端的共享。进一步的,FAT表管理模块用于将接收到的各个所述主机端发送的所述读写命令加入任务队列,以逐个处理所述任务队列中的各个所述读写命令,并从所述存储模块获取所述FAT表,将所述FAT表返回至当前处理的所述读写命令对应的所述主机端,因此,FAT表一次只能对一个主机端进行资源共享,所述FAT表中存储有所述FAT文件的实际读写地址,获取到FAT表的主机端才可以根据读写需要进行读写操作,以避免各个主机端之间形成读写冲突,避免各个主机端造成FAT表的数据覆盖。进一步的,本发明为每个与所述存储模块端通信连接的主机端,都在FAT表的簇中预分配不重叠的簇域,在侦测到有所述主机端向所述存储模块端发送簇池申请请求时,根据发送簇池申请请求的所述主机端分配的簇域,对发送簇池申请请求的所述主机端进行簇池分配,由于簇池存在多个簇,因此,每个主机端一次可以申请到多个簇,降低了主机端和存储模块端的交互次数,提高了写数据效率。进一步的,本发明中为每个主机端,都在FAT表的簇中预分配了不重叠的簇域,当多主机端同时有写请求时,每个主机端都有自己分配的簇域,不会造成多个主机的簇地址交叉分配,有利于最大化地保证同一文件的簇链连续,避免数据过于分散,提高了文件的搜索和读效率。
现有技术中,对于FAT表的簇空间采取的是从上至下依次写入的方式,本发明中的主机端数量可以为一个或多个,当所述主机端数量为多个时,每个所述主机端在所述FAT表的簇中预分配不重叠的簇域。例如,主机端为两个时,将所述FAT表的簇划分为不重叠的第一簇域和第二簇域,第一簇域预分配给第一主机端,第二簇域预分配给第二主机端。
簇池包括多个空闲簇,通过分配簇池的方式,可以一次将多个空闲簇分配给发起簇池申请请求的主机端,避免每次主机端只能分配到一个空闲簇造成的交互频繁,读写效率低的弊端。
基于本发明的面向多主机FAT文件系统的簇分配方法的第一实施例,本发明的面向多主机FAT文件系统的簇分配方法的第二实施例中,所述步骤S10包括:
步骤S11,获取所述主机端的数量;
步骤S12,根据所述主机端的数量,为每个所述主机端在所述FAT表的簇中预分配长度相等且不重叠的簇域;
步骤S13,记录每个所述主机端分配簇域的起始簇地址、终止簇地址和空闲簇个数。
具体的,由于每个主机端对FAT表的写次数是不确定的,因此,本实施例,将所述FAT表的簇预分配成长度相等且不重叠的簇域,以对每个主机端实现簇域的均分,从而避免给写次数频繁的主机端分配到簇空间少的簇域。
进一步的,可以获取预设历史时段内,各个主机端针对所述FAT表的历史写次数,并获取预设历史时段内的针对所述FAT表的历史写次数总和。根据每个主机端针对所述FAT表的历史写次数在所述总和中的占比,以及每个主机端的分配系数,确定每个所述主机端的预分配簇域大小。
其中,分配系数默认为1,并可以根据用户的输入数据修改,以使分配系数与用户对每个主机端的FAT写操作预期相符合。
请参阅图4,基于本发明的面向多主机FAT文件系统的簇分配方法的第一实施例或第二实施例,本发明的面向多主机FAT文件系统的簇分配方法的第三实施例中,步骤S30包括:
步骤S31,获取设定的簇池长度;
步骤S32,根据所述簇池申请请求,按照预设顺序对发送簇池申请请求的主机端分配的簇域进行遍历操作,将遍历过程中发现的空闲簇放入到连续簇池或离散簇池,将达到所述簇池长度的所述连续簇池或所述离散簇池标记为待分配簇池;
步骤S33,将所述待分配簇池分配给发送所述簇池申请请求的主机端。
写数据时会消耗可用簇,删除数据时会回收已用簇,因此,随着数据的增加和删除,不可避免地会出现不连续的簇空间,为更大限度和最大效率的使用所有的簇,本实施例设计两种类型的簇池:连续簇池和离散簇池。连续簇池用于保存一段连续的空闲簇号,可使文件的数据区保持连续;离散簇池用于保存多个非连续的离散的簇号,是多个离散簇号的集合,可充分利用除连续簇池以外的离散地址空间。这里将离散簇池和连续簇池的簇池长度分别设置为M,M的取值可以根据需要设置,例如,M=2048,若剩余可用簇不足M个,则以剩余簇个数为准。
基于本发明的面向多主机FAT文件系统的簇分配方法的第一实施例至第三实施例,本发明的面向多主机FAT文件系统的簇分配方法的第四实施例中,所述步骤S30之前,还包括:
步骤S40,判断所述主机端的簇池是否仍有可用簇;
若否,则执行所述步骤S30。
每次对所述发送簇池申请请求的主机端进行簇池分配后,到下一次主机端需要对FAT表进行写操作时,会发出簇池申请请求,此时,会优先搜索主机端的簇池是否仍有可用簇,若有,则从未用完的簇池中分配空闲簇进行FAT表写操作。若无,则执行所述步骤S30,向存储模块端发送簇池申请请求,并由存储模块端对主机端对应预分配的簇域进行搜索,以找出空闲簇分配给主机端。
本实施例的簇池搜索方式中,主机端可以优先使用之前分配的可用簇,以减少主机端和存储模块端的交互,从而提高系统效率。
当主机端有簇请求时,先在簇池搜索是否仍有可用簇,若仍有可用簇,不需再向存储模块端申请资源,簇池越大则交互越少。直到簇池被使用完后,再重新向存储模块端申请新的簇池。当主机端频繁有簇请求时可大大减少与存储模块端的交互频率,提高数据写效率。
请再次参阅图4,基于本发明的面向多主机FAT文件系统的簇分配方法的第三实施例,本发明的面向多主机FAT文件系统的簇分配方法的第五实施例中,所述步骤S32,包括:
步骤S321,根据所述簇池申请请求,从发送簇池申请请求的主机端分配的簇域的起始簇地址开始,依次侦测所述簇域中簇值为零的空闲簇;
步骤S322,在发现第一个所述空闲簇后,将连续簇长度设置为1,并继续对下一个簇进行侦测;
步骤S323,若下一个所述空闲簇的簇号与上一个所述空闲簇的簇号连续,则将各所述空闲簇组成的簇整体标记为连续簇,并对所述连续簇长度加1,直至所述连续簇的长度达到簇池长度时,将所述连续簇放入连续簇池;
步骤S324,若下一个所述空闲簇的簇号与上一个所述空闲簇的簇号不连续,则将所述连续簇的长度清零,并将各所述空闲簇组成的簇整体标记为离散簇,并将所述离散簇放入离散簇池;
步骤S325,将达到所述簇池长度的所述连续簇池或所述离散簇池标记为待分配簇池。
以簇池长度M=8为例,如图4所示,在FAT表示意图中每个格子表示一个簇,无阴影表示此簇空闲。在FAT表中从上至下依次搜索空闲簇,若无相邻的长度为M的簇,则将此簇放到离散簇池中,反之放入连续簇池中。
基于本发明的面向多主机FAT文件系统的簇分配方法的第一实施例至第五实施例,本发明的面向多主机FAT文件系统的簇分配方法的第六实施例中,所述步骤S30之前,还包括:
步骤S50,将各个所述簇池申请请求加入所述存储模块端的任务队列;
步骤S60,按照预设规则对所述任务队列中存在的各个所述簇池申请请求进行排序;
所述步骤S30,包括:
步骤S35,根据各个所述簇池申请请求的排序,以及每一个当前处理顺序的所述簇池申请请求对应的所述主机端分配的簇域,对每一个当前处理顺序的所述簇池申请请求对应的所述主机端进行簇池分配。
具体的,步骤S35可以参照步骤S31、步骤S32、步骤S33执行。
具体的,任务队列中各项簇池申请请求的排序可以有多种方式,本实施例中,根据述簇池申请请求的发出时间进行排序,以符合先进先出的原则。
进一步的,逐个处理所述任务队列中的各项簇池申请请求的方式还可以为:设置簇池申请请求的预设处理顺序,在接收到簇池申请请求时,按照预设处理顺序,对所述任务队列中的各个所述簇池申请请求依次进行处理。
进一步的,还可以对主机端设置优先级别,根据主机端的优先级别,确定一时段内收到的簇池申请请求的处理顺序。例如,第一主机端为第一优先级,第二主机端为第二优先级,在一预设时段内,若同时收到了第一主机端和第二主机端的簇池申请请求,则优先处理第一主机端的所有簇池申请请求,再处理第二主机端的所有簇池申请请求。而来自于第一主机端的所有簇池申请请求,则按照发出时间进行处理顺序排序。
基于本发明的面向多主机FAT文件系统的簇分配方法的第一实施例至第五实施例,本发明的面向多主机FAT文件系统的簇分配方法的第七实施例中,所述方法,还包括:
步骤S70,判断发送簇池申请请求的主机端对应的簇域是否分配完;
若是,则执行步骤S80,对与所述存储模块端连接的其他主机端分配的簇域进行划分,以从其他主机端分配的簇域中划分部分簇域;
步骤S90,将所述部分簇域作为分配给发送簇池申请请求的主机端的新的簇域。
根据主机端个数N,将整个簇空间均分为N个簇域,使得不同主机的写数据区尽量无交叉和重叠,提高同一个文件在磁盘上存储地址的连续性。当某个主机端有分配簇需求时,优先搜索主机端自身的预分配的簇域,若在预分配的簇域搜索到可用簇,在该簇所映射的数据区地址空间进行写数据;若自己的预分配簇域已搜索完毕或者无可用空闲簇,再依次搜索其他主机端的簇域,直到无可用簇。
基于本发明的面向多主机FAT文件系统的簇分配方法的第一实施例至第五实施例,本发明的面向多主机FAT文件系统的簇分配方法的第八实施例中,所述方法,还包括:
步骤S100,获取设定的簇单位;
步骤S110,按照设定的簇单位,将所述FAT表所映射的地址空间进行划分。
簇单位可以为nk,其中,n大于0,且n为8的倍数。例如,簇单位可以为8k、16k、24k等。簇单位决定了每个簇的存储量。
本发明针对目前已有技术的局限性做出了如下改进:
1、针对多主机端预分配不同的簇域,使不同主机端的簇域尽量不交叉;
2、提出连续簇池和离散簇池的方法进行簇池预分配;
3、针对多主机端的簇请求预分配不同的簇池,各主机端在本地对簇池内的簇再进行二次分配。
为实现上述目的,本发明还提供一种面向多主机FAT文件系统的FAT共享系统,应用上述任一项所述的面向多主机FAT文件系统的簇分配方法;所述FAT共享系统包括主机端和独立于所述主机端之外的存储模块端,所述存储模块端与所述主机端通信连接,所述存储模块端存储有FAT表;
所述存储模块端用于为每个所述主机端在所述FAT表的簇中预分配不重叠的簇域,侦测所述主机端发送的簇池申请请求,并根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配;
所述主机端用于发送簇池申请请求,并根据分配的簇池对所述FAT表进行写操作。
优选地,每个所述主机端分别通信连接光纤通道交换机,所述光纤通道交换机通信连接所述存储模块端;所述存储模块端包括Xilinx FPGA 7K325T、飞腾CPU FT2000/4和SATA SSD存储模块。
如图5所示,在一具体实施例中,FAT共享系统由两台主机端和一台存储模块端组成。共享存储模块经初始化后,首先为各主机端预分配各自的簇域,然后等待来自主机端的请求。当主机端在在应用层有写文件请求时,FAT文件系统会首先检索主机端的本地簇池是否有空闲簇,若有空闲簇,则从簇池中取可用簇进行写操作;若主机端的本地簇池已被用尽,向存储模块端申请簇池,先进行握手,存储模块端将簇池请求加入任务队列,逐个处理任务请求,待分配完成后,将分配好的连续簇池或者离散簇池返回给申请资源的主机端,主机端从获取的簇池中再获取资源。
所述存储模块端包括FAT表管理模块和存储模块,所述存储模块存储有FAT表;所述FAT表管理模块用于将接收到的各个所述主机端发送的所述簇池申请请求加入任务队列,以逐个处理所述任务队列中的各个所述簇池申请请求,以将所述FAT表的为所述主机端预分配的簇域中的簇池分配给主机端。
FAT共享系统还包括控制模块,所述控制模块分别与所述存储模块端和所述主机端信号连接,所述控制模块用于对各存储模块端进行管理,包括存储模块端的发现、加载、冲突检测以及FAT同步,并将整个FAT共享系统内部的多个存储模块端组合成统一的资源池,提供给上层FAT文件系统访问操作,实现存储资源虚拟化;同时在此层还可实现均衡调度,对整个系统作全局性能优化。
通过将主机端文件系统层的FAT模块迁移至存储模块端,避免了各主机端同时操作同一存储模块端的冲突,从而高效地实现各主机端共享系统的存储资源。
存储模块端无须保存任何主机端信息,为各个主机端提供对等服务,此外除存储服务本身之外无任何其他负载,事实上除了针对写操作需提供FAT分配服务外,其他所有的操作流程均与DAS、SAN模式一致,最大限度地保障存储服务性能,并提高模块可靠性。
本发明有利于实现linux系统下多主机端、多任务共享访问存储模块端,主要包含FAT共享机制、FAT同步和IO操作请求队列化等部分。所述SATA SSD存储模块为系统盘,用于存放系统软件和FPGA的更新固件。
所述FAT表管理模块从主机端的标准文件系统中分离,并由所述存储模块端代理。具体地,所述主机端的数量为可以至少两个,在此不对主机端的数量进行限制。各个所述主机端与所述存储模块端使用FC进行通信,多机下接入光纤通道交换机,具体的,每个所述主机端分别通信连接光纤通道交换机,所述光纤通道交换机通信连接所述存储模块端。
优选地,所述存储模块端包括Xilinx FPGA 7K325T、飞腾CPU FT2000/4和SATASSD存储模块,可实现FAT的共享和队列化。
本发明用于在多主机端和多任务下正常操作存储设备,并且能够更高效地实现各主机端文件共享。
进一步的,所述存储模块端包括CPU模块、FPGA模块、电源模块、时钟模块和热插拔模块,所述CPU模块包括所述FAT表管理模块;所述FPGA模块、所述存储模块和所述热插拔模块分别电连接所述CPU模块,所述电源模块分别与所述CPU模块和所述FPGA模块电连接;所述时钟模块分别与所述CPU模块和所述FPGA模块电连接。
CPU模块选用FT-2000/4,FT-2000/4接资源如下:1、集成2个DDR4-3200通道,支持对DDR存储数据进行实时加密;2、集成 34Lanes PCIe 3.0接口、2个X16(每个可拆分成2个X8)和2个X1;3、集成2个千兆网接口(RGMII),支持10/100/1000Mbps自适应;4、集成4个UART、1个LPC Master、32个GPIO、4个I2C、1个QSPI、2个通用SPI、2个WDT、1个RTC和16个外部中断(和GPIO共用IO)。
电源模块根据CPU和FPGA的上电时序和电流大小的特征,采用分别供电的方式,减少电源对两个芯片使用时的影响。
所述FPGA模块包括依次信号连接的FC接口、端口控制单元和端口路由选择单元;所述端口路由选择单元还分别信号连接有公共寄存器通用协议单元和FC读写协议控制单元,所述公共寄存器通用协议单元和所述FC读写协议控制单元分别信号连接PCIe接口控制单元。
具体的,所述FPGA模块还包括高速接口,用于实现FC光纤通道协议的数据收发。FC接口为两路(FC0和FC1),两路FC接口数据通过端口控制单元对FC接口数据进行收发控制;端口路由选择单元通过数据收发的端口号和CPU模块的公共寄存器通用协议控制单元的寄存器配置信息,实现端口路由功能;FC读写协议控制单元进行数据收发控制,结合寄存器配置信息通过PCIe接口控制单元,实现CPU模块数据协议包的收发;实现FC0、FC1两路光纤通道协议数据和PCIe协议的Switch路由功能,以及存储模块端的FC接口和CPU模块之间的透明桥数据转发功能。
进一步的,所述FAT共享系统还包括销毁控制模块,所述销毁控制模块包括信号连接的销毁触发检测单元和销毁触发时序控制单元,所述销毁触发时序控制单元用于连接所述存储模块端,所述销毁触发检测单元用于对前端接入管脚的触发信号进行检测,对所述触发信号中的干扰、抖动和上电过程芯片初始化管脚信号不稳定的误触发信号进行过滤,并将过滤后的所述触发信号发送至所述销毁触发时序控制单元;所述销毁触发时序控制单元用于在接收到所述触发信号后,根据存储模块端烧录的销毁触发时序进行销毁控制,以对与所述销毁触发时序控制单元连接的各个所述存储模块端进行销毁信号的并行触发,实现同步销毁。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备进入本发明各个实施例所述的方法。
在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施例”、 或“第一实施例~第X实施例”等的描述意指结合该实施例或示例描述的具体特征、 结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料、方法步骤或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种面向多主机FAT文件系统的簇分配方法,其特征在于,应用于面向多主机FAT文件系统的FAT共享系统,所述FAT共享系统包括主机端和独立于所述主机端之外的存储模块端,所述存储模块端与所述主机端通信连接,所述存储模块端存储有FAT表;所述方法,包括如下步骤:
为每个所述主机端在所述FAT表的簇中预分配不重叠的簇域;
侦测所述主机端发送的簇池申请请求;
根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配。
2.根据权利要求1所述的面向多主机FAT文件系统的簇分配方法,其特征在于,所述为每个所述主机端在所述FAT表的簇中预分配不重叠的簇域的步骤,包括:
获取所述主机端的数量;
根据所述主机端的数量,为每个所述主机端在所述FAT表的簇中预分配长度相等且不重叠的簇域;
记录每个所述主机端分配簇域的起始簇地址、终止簇地址和空闲簇个数。
3.根据权利要求1所述的面向多主机FAT文件系统的簇分配方法,其特征在于,所述根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配的步骤,包括:
获取设定的簇池长度;
根据所述簇池申请请求,按照预设顺序对发送簇池申请请求的主机端分配的簇域进行遍历操作,将遍历过程中发现的空闲簇放入到连续簇池或离散簇池,将达到所述簇池长度的所述连续簇池或所述离散簇池标记为待分配簇池;
将所述待分配簇池分配给发送所述簇池申请请求的主机端。
4.根据权利要求1所述的面向多主机FAT文件系统的簇分配方法,其特征在于,所述根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配的步骤之前,还包括:
判断所述主机端的簇池是否仍有可用簇;
若否,则执行所述根据所述簇池申请请求和发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配的步骤。
5.根据权利要求3所述的面向多主机FAT文件系统的簇分配方法,其特征在于,所述根据所述簇池申请请求,按照预设顺序对发送簇池申请请求的主机端分配的簇域进行遍历操作,将遍历过程中发现的空闲簇放入到连续簇池或离散簇池,将达到所述簇池长度的所述连续簇池或所述离散簇池标记为待分配簇池的步骤,包括:
根据所述簇池申请请求,从发送簇池申请请求的主机端分配的簇域的起始簇地址开始,依次侦测所述簇域中簇值为零的空闲簇;
在发现第一个所述空闲簇后,将连续簇长度设置为1,并继续对下一个簇进行侦测;
若下一个所述空闲簇的簇号与上一个所述空闲簇的簇号连续,则将各所述空闲簇组成的簇整体标记为连续簇,并对所述连续簇长度加1,直至所述连续簇的长度达到簇池长度时,将所述连续簇放入连续簇池;
若下一个所述空闲簇的簇号与上一个所述空闲簇的簇号不连续,则将所述连续簇的长度清零,并将各所述空闲簇组成的簇整体标记为离散簇,并将所述离散簇放入离散簇池;
将达到所述簇池长度的所述连续簇池或所述离散簇池标记为待分配簇池。
6.根据权利要求1至5中任一项所述的面向多主机FAT文件系统的簇分配方法,其特征在于,所述根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配的步骤之前,还包括:
将各个所述簇池申请请求加入所述存储模块端的任务队列;
按照预设规则对所述任务队列中存在的各个所述簇池申请请求进行排序;
所述根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配的步骤,包括:
根据各个所述簇池申请请求的排序,以及每一个当前处理顺序的所述簇池申请请求对应的所述主机端分配的簇域,对每一个当前处理顺序的所述簇池申请请求对应的所述主机端进行簇池分配。
7.根据权利要求1至5中任一项所述的面向多主机FAT文件系统的簇分配方法,其特征在于,所述方法,还包括:
判断发送簇池申请请求的主机端对应的簇域是否分配完;
若是,则对与所述存储模块端连接的其他主机端分配的簇域进行划分,以从其他主机端分配的簇域中划分部分簇域;
将所述部分簇域作为分配给发送簇池申请请求的主机端的新的簇域。
8.根据权利要求1至5中任一项所述的面向多主机FAT文件系统的簇分配方法,其特征在于,所述方法,还包括:
获取设定的簇单位;
按照设定的簇单位,将所述FAT表所映射的地址空间进行划分。
9.一种面向多主机FAT文件系统的FAT共享系统,其特征在于,应用权利要求1至8中任一项所述的面向多主机FAT文件系统的簇分配方法;所述FAT共享系统包括主机端和独立于所述主机端之外的存储模块端,所述存储模块端与所述主机端通信连接,所述存储模块端存储有FAT表;
所述存储模块端用于为每个所述主机端在所述FAT表的簇中预分配不重叠的簇域,侦测所述主机端发送的簇池申请请求,并根据所述簇池申请请求和为发送簇池申请请求的主机端分配的簇域,对所述发送簇池申请请求的主机端进行簇池分配;
所述主机端用于发送簇池申请请求,并根据分配的簇池对所述FAT表进行写操作。
10.根据权利要求9所述的面向多主机FAT文件系统的FAT共享系统,其特征在于,每个所述主机端分别通信连接光纤通道交换机,所述光纤通道交换机通信连接所述存储模块端;所述存储模块端包括Xilinx FPGA 7K325T、飞腾CPU FT2000/4和SATA SSD存储模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618094.0A CN112286871B (zh) | 2020-12-31 | 2020-12-31 | 面向多主机fat文件系统的簇分配方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618094.0A CN112286871B (zh) | 2020-12-31 | 2020-12-31 | 面向多主机fat文件系统的簇分配方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286871A CN112286871A (zh) | 2021-01-29 |
CN112286871B true CN112286871B (zh) | 2021-03-16 |
Family
ID=74425272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011618094.0A Active CN112286871B (zh) | 2020-12-31 | 2020-12-31 | 面向多主机fat文件系统的簇分配方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286871B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006054008A (ja) * | 2004-08-12 | 2006-02-23 | Sony Corp | データ記録装置及び方法、データ記録システム |
CN101027651A (zh) * | 2004-07-21 | 2007-08-29 | 桑迪士克股份有限公司 | 最佳顺序性簇管理的fat分析 |
CN101493844A (zh) * | 2009-03-06 | 2009-07-29 | 无锡紫芯集成电路系统有限公司 | 实现嵌入式存储器多主接口的方法及装置 |
CN101923553A (zh) * | 2009-06-11 | 2010-12-22 | 鸿富锦精密工业(深圳)有限公司 | Fat文件系统的安装方法 |
CN103026330A (zh) * | 2010-06-08 | 2013-04-03 | 桑迪士克以色列有限公司 | 具有预加载的内容的数据存储设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4490917B2 (ja) * | 2003-07-24 | 2010-06-30 | パナソニック株式会社 | ファイル管理方法及び情報処理装置 |
US7681008B2 (en) * | 2006-09-29 | 2010-03-16 | Sandisk Corporation | Systems for managing file allocation table information |
CN101286177B (zh) * | 2008-05-30 | 2010-06-02 | 中兴通讯股份有限公司 | 一种在文件分配表中给文件分配空间的方法及装置 |
CN109597793B (zh) * | 2018-12-04 | 2023-02-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种提升文件系统io性能的方法 |
CN111177070A (zh) * | 2019-12-03 | 2020-05-19 | 贵州朗盛科技股份有限公司 | 文件分配方法和存储设备 |
-
2020
- 2020-12-31 CN CN202011618094.0A patent/CN112286871B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101027651A (zh) * | 2004-07-21 | 2007-08-29 | 桑迪士克股份有限公司 | 最佳顺序性簇管理的fat分析 |
EP2254053A3 (en) * | 2004-07-21 | 2010-12-08 | Sandisk Corporation | Fat analysis for optimized sequential cluster management |
JP2006054008A (ja) * | 2004-08-12 | 2006-02-23 | Sony Corp | データ記録装置及び方法、データ記録システム |
CN101493844A (zh) * | 2009-03-06 | 2009-07-29 | 无锡紫芯集成电路系统有限公司 | 实现嵌入式存储器多主接口的方法及装置 |
CN101923553A (zh) * | 2009-06-11 | 2010-12-22 | 鸿富锦精密工业(深圳)有限公司 | Fat文件系统的安装方法 |
CN103026330A (zh) * | 2010-06-08 | 2013-04-03 | 桑迪士克以色列有限公司 | 具有预加载的内容的数据存储设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112286871A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8051243B2 (en) | Free space utilization in tiered storage systems | |
US7620698B2 (en) | File distribution system in which partial files are arranged according to various allocation rules associated with a plurality of file types | |
CN100481037C (zh) | 存储装置及其控制方法以及程序 | |
US9003002B2 (en) | Efficient port management for a distributed network address translation | |
US8850156B2 (en) | Method and system for managing virtual machine storage space and physical host | |
US8001355B2 (en) | Storage system, volume allocation method and management apparatus | |
US20080184000A1 (en) | Storage module and capacity pool free capacity adjustment method | |
EP2479677A1 (en) | Method, system and physical host for virtual machine (vm) storage space management | |
JP2004164370A (ja) | 仮想ボリュームの記憶領域割当方法、その装置及びプログラム | |
US7617349B2 (en) | Initiating and using information used for a host, control unit, and logical device connections | |
US20130124674A1 (en) | Computer system and data migration method | |
JP2003345631A (ja) | 計算機システム及び記憶領域の割当方法 | |
AU2020361670B2 (en) | Virtual memory metadata management | |
EP3992792A1 (en) | Resource allocation method, storage device, and storage system | |
JP2009053921A (ja) | ストレージシステム、計算機及び計算機システム | |
CN112286871B (zh) | 面向多主机fat文件系统的簇分配方法及系统 | |
US20140304226A1 (en) | Storage system | |
CN112069147B (zh) | 面向多主机fat文件系统的fat共享系统及共享方法 | |
US10740284B1 (en) | Techniques for efficiently performing filesystem reorganization tasks for different filesystems | |
JP2008027162A (ja) | データ記録装置およびデータ記録プログラム | |
US9058113B2 (en) | Storage region providing device, storage region providing method, and recording medium | |
CN110780817B (zh) | 数据记录方法和装置、存储介质及电子装置 | |
US11928360B2 (en) | Command slot management for memory devices | |
CN116483740B (zh) | 内存数据的迁移方法、装置、存储介质及电子装置 | |
CN116401227A (zh) | 一种集群配置方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |