基于DAS架构存储服务器的虚拟文件系统及其文件管理方法与流程

文档序号:11134139阅读:520来源:国知局
基于DAS架构存储服务器的虚拟文件系统及其文件管理方法与制造工艺

本发明涉及虚拟文件系统领域,尤其涉及一种基于DAS架构存储服务器的虚拟文件系统及其文件管理方法。



背景技术:

随着互联网和视频技术的飞速发展,人们对视频质量要求不断提升,导致视频数据传输量不断增加,随之要求视频存储服务器不断提高视频读写速率,以满足及时响应用户视频读写请求的目的。当前磁盘存储服务器主要包括DAS、NAS和SAN三种架构。其中,DAS(Direct Access Storage,即直接连接存储)是指将存储设备通过SCSI接口或光纤通道直接连接到一台计算机上。NAS(Network Attached Storage,即网络连接存储)是指将存储设备通过标准的网络拓扑结构(例如以太网),连接到一群计算机上。SAN(Storage Area Network,即存储区域网络)是指通过光纤通道连接到一群计算机上。

在实际应用过程中,酒店、公寓、地方电视台等中小型企业受成本限制,一般不会选用技术复杂且成本高的NAS架构或SAN架构的存储服务器进行视频数据存储,通常会采用DAS架构的存储服务器进而视频数据存储,DAS架构的存储服务器主要依赖存储服务器的主机操作系统进行数据的读写操作和存储维护管理。DAS架构的存储服务器的具有成本低、结构简单,不需要专门的技术人员维护等优点,在普通数据存储并且对读写操作的IO性能(Input/Output性能,即输入输出性能)要求不高时,可满足基本需求。但在需要大并发读写操作时,DAS架构的存储服务器只能通过配置RAID(Redundant Arrays of Independent Disks,即独立冗余磁盘陈列)卡,提高与存储服务器相连的磁盘阵列整体的读写速率。现有DAS架构的存储服务器,即使配置有RAID卡,若多个用户集中访问同一视频资源时,也会形成整个存储服务器的IO性能瓶颈,导致存储该视频资源的磁盘紧张,影响存储服务器的IO性能。并且,即使多个访问请求不是访问同一视频资源但多个访问请求对应的视频资源在同一磁盘上,也有可能导致磁盘紧张,影响存储服务器的IO性能。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的缺陷,提供基于DAS架构存储服务器的虚拟文件系统及其文件管理方法,用以提高存储服务器的读写速率。

本发明解决其技术问题所采用的技术方案是:一种基于DAS架构存储服务器的虚拟文件系统,包括任务管理子系统和缓存子系统;

所述任务管理子系统,用于接收来自请求终端的文件操作任务,在所述文件操作任务的任务类型为读写文件任务时,将所述文件操作任务发送给所述缓存子系统;

所述缓存子系统,用于接收所述文件操作任务;在所述文件操作任务的任务类型为读文件任务时,从缓存空间中获取与所述文件操作任务相对应的待读取文件数据,并将所述待读取文件数据发送给所述任务管理子系统;或者,在所述文件操作任务的任务类型为写文件任务时,将所述文件操作任务对应的待写入文件数据写入所述缓存空间;

所述任务管理子系统,用于接收所述待读取文件数据,并将所述待读取文件数据发送给所述请求终端。

优选地,所述虚拟文件系统还包括存储子系统;

所述缓存子系统,用于判断接收到所述文件操作任务的任务类型为读文件任务还是写文件任务;

所述缓存子系统,用于在接收到所述文件操作任务的任务类型为读文件任务时,判断缓存空间中是否存在与所述文件操作任务相对应的待读取文件数据;若存在,则更新所述缓存空间内的文件数据,并将所述待读取文件数据发送给所述任务管理子系统;若不存在,则将所述文件操作任务发送给所述存储子系统;

所述存储子系统,用于接收所述文件操作任务,获取与所述文件操作任务相对应的待读取文件数据,并将所述待读取文件数据发送给所述缓存子系统;

所述缓存子系统,用于接收来自所述存储子系统的所述待读取文件数据,将所述待读取文件数据添加到所述缓存空间内,更新所述缓存空间内的文件数据;并将所述待读取文件数据发送给所述任务管理子系统;

所述缓存子系统,用于在接收到所述文件操作任务的任务类型为写文件任务时,所述文件操作任务包括所述待写入文件数据;将所述待写入文件数据添加到所述缓存空间内,更新所述缓存空间的文件数据;并将所述文件操作任务发送给所述存储子系统;

所述存储子系统,用于接收所述文件操作任务,并存储所述待写入文件数据。

优选地,所述虚拟文件系统还包括与主机操作系统建立内存映射关系的目录子系统;

所述目录子系统,用于采用预设数据结构管理存储在所述存储子系统中的文件数据对应的文件目录信息;

所述存储子系统,用于将磁盘依空间大小划分成存储段、存储块和存储页三级存储结构,并将所述文件数据存储在至少一个所述存储页上;所述文件目录信息记录每一所述文件数据对应的至少一个存储地址;

或者,所述存储子系统,用于将存储在所述存储子系统中的文件数据划分成若干子文件数据,并将所述若干子文件数据均匀分布并存储在所有磁盘上;所述文件目录信息记录每一所述子文件数据对应的磁盘地址。

优选地,还包括:所述任务管理子系统,用于在所述文件操作任务的任务类型为管理文件任务时,将所述文件操作任务发送给所述目录子系统;所述管理文件任务包括创建文件任务、删除文件任务、修改文件任务或查找文件任务;

所述目录子系统,用于接收并执行所述文件操作任务。

优选地,所述目录子系统,用于在所述文件操作任务的任务类型为创建文件任务时,判断所述文件操作任务所要创建的文件的文件大小是否已确定;

所述目录子系统,用于在所述文件大小已确定时,通过所述任务管理子系统向所述存储子系统发送申请缓存空间请求,接收所述存储子系统的分配缓存空间;基于所述文件操作任务生成一创建文件目录信息,将所述创建文件目录信息与所述分配缓存空间相关联,并将所述创建文件目录信息添加到所述预设数据结构中;

所述目录子系统,用于在所述文件大小未确定时,基于所述文件操作任务生成一创建文件目录信息,并将所述创建文件目录信息添加到所述预设数据结构中。

本发明还提供一种基于DAS架构存储服务器的虚拟文件系统的文件管理方法,所述虚拟文件系统包括任务管理子系统和缓存子系统;

所述任务管理子系统接收来自请求终端的文件操作任务,在所述文件操作任务的任务类型为读写文件任务时,将所述文件操作任务发送给所述缓存子系统;

所述缓存子系统接收所述文件操作任务;在所述文件操作任务的任务类型为读文件任务时,从缓存空间中获取与所述文件操作任务相对应的待读取文件数据,并将所述待读取文件数据发送给所述任务管理子系统;或者,在所述文件操作任务的任务类型为写文件任务时,将所述文件操作任务对应的待写入文件数据写入所述缓存空间;

所述任务管理子系统接收所述待读取文件数据,并将所述待读取文件数据发送给所述请求终端。

优选地,所述虚拟文件系统还包括存储子系统;

所述缓存子系统判断接收到所述文件操作任务的任务类型为读文件任务还是写文件任务;

所述缓存子系统在接收到所述文件操作任务的任务类型为读文件任务时,判断缓存空间中是否存在与所述文件操作任务相对应的待读取文件数据;若存在,则更新所述缓存空间内的文件数据,并将所述待读取文件数据发送给所述任务管理子系统;若不存在,则将所述文件操作任务发送给所述存储子系统;

所述存储子系统接收所述文件操作任务,获取与所述文件操作任务相对应的待读取文件数据,并将所述待读取文件数据发送给所述缓存子系统;

所述缓存子系统接收来自所述存储子系统的所述待读取文件数据,将所述待读取文件数据添加到所述缓存空间内,更新所述缓存空间内的文件数据;并将所述待读取文件数据发送给所述任务管理子系统;

所述缓存子系统在接收到所述文件操作任务的任务类型为写文件任务时,所述文件操作任务包括所述待写入文件数据;将所述待写入文件数据添加到所述缓存空间内,更新所述缓存空间的文件数据;并将所述文件操作任务发送给所述存储子系统;

所述存储子系统接收所述文件操作任务,并存储所述待写入文件数据。

优选地,所述虚拟文件系统还包括与主机操作系统建立内存映射关系的目录子系统;所述目录子系统采用预设数据结构管理存储在所述存储子系统中的文件数据对应的文件目录信息;

所述存储子系统将磁盘依空间大小划分成存储段、存储块和存储页三级存储结构,并将所述文件数据存储在至少一个所述存储页上;所述文件目录信息记录每一所述文件数据对应的至少一个存储地址;

或者,所述存储子系统将存储在所述存储子系统中的文件数据划分成若干子文件数据,并将所述若干子文件数据均匀分布并存储在所有磁盘上;所述文件目录信息记录每一所述子文件数据对应的磁盘地址。

优选地,还包括:

所述任务管理子系统在判断所述文件操作任务的任务类型为管理文件任务时,将所述文件操作任务发送给所述目录子系统;所述管理文件任务包括创建文件任务、删除文件任务、修改文件任务或查找文件任务;

所述目录子系统接收并执行所述文件操作任务。

优选地,还包括:所述目录子系统在所述文件操作任务的任务类型为创建文件任务时,判断所述文件操作任务所要创建的文件的文件大小是否已确定;

所述目录子系统在所述文件大小已确定时,通过所述任务管理子系统向所述存储子系统发送申请缓存空间请求,接收所述存储子系统的分配缓存空间;基于所述文件操作任务生成一创建文件目录信息,将所述创建文件目录信息与所述分配缓存空间相关联,并将所述创建文件目录信息添加到所述预设数据结构中;

所述目录子系统在所述文件大小未确定时,基于所述文件操作任务生成一创建文件目录信息,并将所述创建文件目录信息添加到所述预设数据结构中。

本发明与现有技术相比具有如下优点:本发明所提供的基于DAS架构存储服务器的虚拟文件系统及其文件管理方法,任务管理子系统在接收任务类型为读写文件任务的文件操作任务时,将文件操作任务发送给缓存子系统;缓存子系统在文件操作任务的任务类型为读文件任务时,从缓存空间获取与文件操作任务相对应的待读取文件数据并发送给任务管理子系统;在文件操作任务的任务类型为写文件任务时,将与文件操作任务相对应的待写入文件数据写入缓存空间。该虚拟文件系统中设置缓存子系统对文件操作任务进行处理,可屏蔽对磁盘或磁盘阵列的重复读取,以降低文件操作任务对磁盘或磁盘阵列的读写压力,减少磁盘或磁盘阵列的IO支出,以保证磁盘或磁盘阵列的IO性能。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明实施例1中基于DAS架构存储服务器的虚拟文件系统的原理框图。

图2是本发明实施例2中基于DAS架构存储服务器的虚拟文件系统的文件管理方法的一流程图。

图中:11、任务管理子系统;12、缓存子系统;13、存储子系统;14、目录子系统。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。

实施例1

图1示出本实施例中的基于DAS架构的虚拟文件系统的原理框图。在基于DAS架构存储服务器中,存储服务器与磁盘或磁盘阵列通过SCSI接口直接相连,在存储服务器上设有用于实现对磁盘或磁盘阵列上的文件数据进行IO读写和存储维护管理、数据备份和恢复要求等功能的主机操作系统;其中,磁盘阵列包括至少二个磁盘。本实施例所提供的基于DAS架构存储服务器的虚拟文件系统中,虚拟文件系统与主机操作系统预先建立内存映射关系,具体包括任务管理子系统11、缓存子系统12、目录子系统14和存储子系统13;其中,目录子系统14与主机操作系统建立内存映射关系。

目录子系统14用于采用预设数据结构管理存储在虚拟文件系统中的每一文件数据对应的文件目录信息。具体地,目录子系统14中的文件目录信息以内存映射方式存储在主机操作系统上,从而使目录子系统14中的文件目录信息可实时更新,进而保证文件目录信息的安全和实时有效。由于目录子系统14与主机操作系统建立内存映射关系,使得每次主机操作系统启动时,均需加载目录子系统14。本实施例中,目录子系统14用于管理虚拟文件系统中所有的文件数据,记录文件数据的文件目录信息(包括文件大小、存储地址等),实现创建文件、删除文件、修改文件和查找文件等管理文件任务。本实施例中目录子系统14所采用的预设数据结构为红黑树数据结构,使得执行创建文件、删除文件、修改文件和查找文件等管理文件任务可保持在较低的时间复杂度下。可以理解地,在保持较低的时间复杂度的情况下,预设数据结构还可以为其他数据结构。

任务管理子系统11负责接收并管理请求终端发送的访问虚拟文件系统的文件操作任务,文件操作任务的任务类型包括读写文件任务和管理文件任务;其中,读写文件任务包括读文件任务和写文件任务;管理文件任务包括创建文件任务、删除文件任务、修改文件任务和查找文件任务。每一个文件操作任务对应一任务数据块,该任务数据块用于存储与任务相关的任务信息,包括但不限于任务类型、文件名称、文件大小、创建时间、任务执行状态、码率、视频类型、压缩格式等。另外,任务数据块不存储具体的文件数据,但与文件数据的存储地址相关联。具体地,在文件操作任务的任务类型为读文件任务时,将其对应的任务数据块与获取到的待读取文件数据的存储地址相关联;在文件操作任务的任务类型为写文件任务时,将其对应的任务数据块与待写入文件数据的存储地址相关联。在虚拟文件系统中,基于文件操作任务的任务数据块实现虚拟文件系统各子系统之间的通信调用。任务管理子系统11会根据每一文件操作任务的任务数据块上的任务类型,将文件操作任务发送给相应的子系统进行处理,并将处理结果返回给发送文件操作任务的请求终端。本实施例中,任务管理子系统11在接收到的文件操作任务的任务类型为读写文件任务时,将文件操作任务发送给缓存子系统12进行处理;在接收到的文件操作任务的任务类型为管理文件任务时,将文件操作任务发送给目录子系统14进行处理。

缓存子系统12用于管理缓存空间中缓存的所有文件数据,接收任务管理子系统11发送的任务类型为读写文件任务的文件操作任务,并对接收到的任务类型为读写文件任务的文件操作任务进行处理。具体地,缓存子系统12接收到任务类型为读文件任务的文件操作任务时,先查看缓存空间中是否存在与文件操作任务相对应的待读取文件数据,若存在待读取文件数据,则直接将缓存的待读取文件数据返回给任务管理子系统11,并通过任务管理子系统11发送给请求终端;若不存在待读取文件数据,则将文件操作任务发送给存储子系统13,从存储子系统13获取待读取文件数据并返回给任务管理子系统11。缓存子系统12接收到任务类型为写文件任务的文件操作任务(此时文件操作任务中包含待写入文件数据)时,会先将文件操作任务所包含的待写入文件数据存储在缓存空间内,更新缓存空间的文件数据,然后将待写入文件数据发送存储子系统13,由存储子系统13存储到磁盘或磁盘阵列上。

可以理解地,缓存子系统12预先向主机操作系统申请缓存空间,作为虚拟文件系统的缓存,并独立使用,缓存子系统的2将申请到的缓存空间以页大小为单位,划分成多个缓存页。缓存子系统12负责管理缓存空间内各缓存页的缓存页状态,以确定缓存页处于空闲状态还是使用状态。若处于空闲状态,则可向缓存页直接写入新的文件数据并缓存;若处于使用状态,即记录缓存页中缓存的文件数据在存储子系统13中的存储地址,该存储地址包括文件数据在磁盘或磁盘阵列中的存储段地址、存储块地址和存储页地址,通过该存储地址可直接定位内存中相应的文件数据。

进一步地,缓存子系统12对基于文件操作任务而获取到的待读取文件数据(从存储子系统13)或待写入文件数据(从文件操作任务),均需在缓存空间中缓存一份,将其存储在空闲状态的缓存页上,形成缓存空间的文件数据,以便于再次接收到任务类型为读文件任务的文件操作任务时,可直接将缓存空间的文件数据中获取相应的待读取文件数据返回给任务管理子系统11,无需将文件操作任务发送给存储子系统13以获取相应的待读取文件数据,从而过滤掉一部分任务类型为读文件任务的文件操作任务,使得只有在缓存空间的文件数据中不存在相应的待读取文件数据时才会从存储子系统13获取待读取文件任务,以减轻磁盘的IO压力。可以理解地,在将待读取文件数据或待写入文件数据加入缓存空间时,需先检查缓存空间是否已满;若缓存空间已满,即缓存空间内不存在可缓存待读取文件数据或待写入文件数据的处于空闲状态的缓存页,此时需采用预设的淘汰算法,淘汰旧的缓存页上缓存的文件数据。该缓存淘汰算法包括但不限于RAND算法,FIFO算法,LFU算法,LRU算法,OPT算法。

存储子系统13负责管理磁盘或磁盘阵列,并配合完成文件操作任务。具体地,存储子系统13负责管理存储服务器上的磁盘或磁盘阵列,将磁盘或磁盘阵列依空间大小划分成存储段、存储块和存储页三级存储结构(即将磁盘或磁盘阵列依空间大小划分成若干存储段,每一存储页划分成若干存储块,每一存储块划分成若干存储页),并将文件数据存储在至少一个存储页上。存储子系统13还定义数据结构以管理存储段、存储块和存储页的状态信息,并确定各级存储结构(包括存储段、存储块和存储页)处于空闲状态还是使用状态。若为空闲状态则表示对应的磁盘空间为空,可直接写入文件数据;若为使用状态则表示对应的磁盘空间被占用,不可直接写入文件数据。存储子系统13还建立任务链表,用于接收来自缓存子系统12的任务类型为读写文件任务的文件操作任务;并在文件操作任务的任务类型为读文件任务时,从磁盘或磁盘阵列上获取待读取文件数据并返回给缓存子系统12,此时不修改磁盘或磁盘阵列上的文件数据;在文件操作任务的任务类型为写文件任务时,将待写入文件数据写入磁盘或磁盘阵列,修改磁盘或磁盘阵列上的文件数据,并将待写入文件数据的文件目录信息添加到目录子系统14中。

在一种具体实施方式中,存储子系统13将磁盘或磁盘阵列依空间大小划分成存储段、存储块和存储页三级存储结构,并将文件数据存储在至少一个存储页上;相应地,目录子系统14中的文件目录信息记录每一文件数据对应的存储地址,该存储地址包括存储段地址、存储块地址和存储页地址。由于磁盘或磁盘阵列被划分成存储段、存储块和存储页三级存储结构,文件数据存储在磁盘或磁盘阵列时,会存储在W个存储页上,W个存储页可能属于M个存储块,M个存储块可能属于N个存储段,N个存储段可能属于不同的磁盘。相应地,目录子系统14中该文件数据对应的文件目录信息中记录N个存储段的存储段地址,N个存储段地址下记录M个存储块地址,M个存储块地址下记录W个存储页地址。可以理解地,每一存储页的空间大小一般为物理磁盘页的整数倍,使得磁盘或磁盘阵列在获取待读取文件数据或写入待写入文件数据时正好对应物理磁盘页,以避免为物理磁盘页的非整数倍而产生多余的读写操作。如若存储页为1.5倍物理磁盘页时,在执行任务类型为读写文件任务时需对物理磁盘页读写2次。物理磁盘页一般是512K或1024K,相应地,定义虚拟文件系统的存储子系统13的存储页的磁盘空间大小为512K或1024K。

在另一具体实施方式中,存储子系统13将存储在存储子系统13中的文件数据划分成若干子文件数据,并将若干子文件数据均匀分布并存储在所有磁盘上;文件目录信息记录每一子文件数据对应的磁盘地址。本实施例中的磁盘均为存储磁盘而非系统盘。在该具体实施方式中,无需将磁盘或磁盘阵列划分成存储段、存储块和存储页三级存储结构,而是在给待写入磁盘或磁盘阵列的文件数据分配磁盘空间时,先将文件数据切分成N个子文件数据,再将N个子文件数据均匀分布并存储在所有磁盘上。如待写入文件数据为XXX.ts,存储时需将文件数据切分成XXX_0.ts,XXX_1.ts,XXX_2.ts等子文件数据,并将上述子文件数据均匀分布并存储在所有磁盘上。在该具体实施方式中,磁盘工作线程不是直接读写磁盘,而是要打开对应的子文件数据,并完成读写文件任务。相应地,目录子系统14中的文件目录信息记录的不是文件数据对应的存储段、存储块和存储页所形成的存储地址,而是记录文件数据被切分成哪些子文件数据以及各子文件数据对应的磁盘地址。

可以理解地,不管是对磁盘或磁盘阵列进行存储段、存储块和存储页三级存储结构划分,并将文件数据存储在至少一个存储页上;还是将文件数据划分成若干子文件数据,并将若干子文件数据均匀分布并存储在所有磁盘上,均可使一文件数据存储在不同的磁盘上,大大降低用户访问同一个磁盘上文件数据的概率。由于文件数据分别存储在不同磁盘上,对文件数据进行访问时会使用不同的磁盘,从而实现在大并发访问磁盘时,访问量是分配到不同的磁盘上,这样避免了单块磁盘IO短板对整体性能的影响。

可以理解地,在基于DAS架构存储服务器启动时,其主机操作系统启动,相应地,与主机操作系统建立内存映射关系的虚拟文件系统也启动,即任务管理子系统11和缓存子系统12、存储子系统13和目录子系统14同时启动。其中,目录子系统14启动时加载主机操作系统的文件数据对应的文件目录信息,采用红黑树数据结构管理文件目录信息,该文件目录信息为内存映射文件,在目录子系统14修改内存的文件目录信息时,主机操作系统上的文件目录信息也会同步更新。任务管理子系统11启动时完成数据结构的初始化,用于接收来自请求终端的文件操作任务并根据任务类型将文件操作任务分别发送给缓存子系统12或目录子系统14。缓存子系统12启动时可先向存储子系统13申请在一大块内存作为缓存空间,并将内存划分成多个缓存页,建立数据结构管理缓存空间上的所有缓存页的缓存页状态。可以理解地,在缓存子系统12启动时,缓存空间上所有的缓存页均处于空闲状态。存储子系统13启动时从存储服务器上获取可用来存储文件数据的磁盘或磁盘阵列,在获取到磁盘或磁盘阵列时,对每一磁盘进行编号,为每一磁盘创建一磁盘工作线程,磁盘工作线程用于将自己所属的磁盘作为一个大文件进行操作(即将磁盘或磁盘阵列作为一个大文件,磁盘工作线程操作时直接读写磁盘,而无需在磁盘上创建文件),并将大文件依据磁盘空间大小划分为存储段、存储块和存储页三级存储结构,建立数据结构管理存储段、存储块和存储页的状态信息。存储子系统13启动时还创建任务链表对应的工作线程,负责接收文件操作任务并将文件操作任务分配给各磁盘工作线程,并将执行文件操作任务的结果返回。

本实施例提供一种基于DAS架构存储服务器的虚拟文件系统,用于实现对存储在存储子系统13中的文件数据进行访问(包括读写操作),即用于根据任务类型为读写文件任务的文件操作任务获取待读取文件数据或将待写入文件数据存储在存储子系统13。具体地,该基于DAS架构存储服务器的虚拟文件系统包括:

任务管理子系统11,用于接收来自请求终端的文件操作任务,在文件操作任务的任务类型为读写文件任务时,将文件操作任务发送给缓存子系统12。即任务管理子系统11在接收到文件操作任务时,需根据文件操作任务对应的任务数据块确定文件操作任务的任务类型。具体地,文件操作任务的任务类型包括读写文件任务和管理文件任务;其中,读写文件任务包括读文件任务和写文件任务;管理文件任务包括创建文件任务、删除文件任务、修改文件任务和查找文件任务。

缓存子系统12,用于接收文件操作任务;在文件操作任务的任务类型为读文件任务时,从缓存空间中获取与文件操作任务相对应的待读取文件数据,并将待读取文件数据发送给任务管理子系统11;或者,在文件操作任务的任务类型为写文件任务时,将文件操作任务对应的待写入文件数据写入缓存空间。可以理解地,在文件操作任务的任务类型为写文件任务时,文件操作任务包含待写入文件数据,将待写入文件数据写入缓存空间并缓存,以使缓存子系统12接收到下一任务类型为读文件任务时,可从缓存空间获取的相应待读取文件数据,并发送给任务管理子系统11。

任务管理子系统11,用于接收待读取文件数据,并将待读取文件文件数据发送给请求终端,以使请求终端获取与文件操作任务相应的待读取文件数据。

在该具体实施方式中,任务管理子系统11在接收任务类型为读写文件任务的文件操作任务时,将该文件操作任务发送给缓存子系统12;缓存子系统12在文件操作任务的任务类型为读文件任务时,从缓存空间获取与文件操作任务相对应的待读取文件数据并发送给任务管理子系统11;在文件操作任务的任务类型为写文件任务时,将与文件操作任务相对应的待写入文件数据写入缓存空间。该虚拟文件系统中设置缓存子系统12对文件操作任务进行处理,可屏蔽对磁盘或磁盘阵列的重复读取,以降低文件操作任务对磁盘或磁盘阵列的读写压力,减少磁盘或磁盘阵列的IO支出,以保证磁盘或磁盘阵列的IO性能。

进一步地,基于DAS架构存储服务器的虚拟文件系统,在对任务类型为读文件任务的文件操作任务进行处理时,可屏蔽对同一待读取文件数据的重复读取。

具体地,缓存子系统12,用于在接收到文件操作任务的任务类型为读文件任务时,判断缓存空间中是否存在与文件操作任务相对应的待读取文件数据。若缓存空间中存在与文件操作任务相对应的待读取文件数据,则更新缓存空间内的文件数据,并将待读取文件数据发送给任务管理子系统11。若缓存空间不存在与文件操作任务相对应的待读取文件数据,则将文件操作任务发送给存储子系统13。

存储子系统13,用于接收文件操作任务,获取与文件操作任务相对应的待读取文件数据,并将待读取文件数据发送给缓存子系统12。

缓存子系统12,用于接收来自存储子系统13的待读取文件数据,将待读取文件数据添加到缓存空间内,更新缓存空间内的文件数据;并将待读取文件数据发送给任务管理子系统11。

缓存子系统12基于文件操作任务读取待读取文件数据包括随机读取和顺序读取两种情形。在随机读取时,需指明待读取文件数据的起始位置和文件大小,计算起始位置处于缓存空间的具体缓存页,从具体缓存页开始查找缓存空间是否存在与文件操作任务相对应的待读取文件数据,若缓存空间中存在相应的待读取文件数据,则更新缓存空间缓存的文件数据,以防止待读取文件数据被缓存子系统12预设的淘汰算法淘汰,并将待读取文件数据发送给任务管理子系统11;若缓存空间中不存在相应的待读取文件数据,则将文件操作任务发送给存储子系统13,由存储子系统13读取待读取文件数据。在顺序读取时,可指定待读取文件数据的起始位置,也可以采用默认的起始位置,并根据起始位置及文件大小计算起始位置在缓存空间的具体缓存页,从具体缓存页开始查找缓存空间是否存在与文件操作任务相对应的待读取文件数据,若找到则将待读取文件数据复制返回给任务管理子系统11;若没有找到则提交到存储子系统13,由存储子系统13完成读操作。

可以理解地,在缓存子系统12接收任务类型为读文件任务的文件操作任务时,先从缓存空间查找是否存在与文件操作任务相对应的待读取文件数据,在缓存空间存在待读取文件数据时,将待读取文件数据发送给任务管理子系统11,以完成该文件操作任务,无需将文件操作任务发送给存储子系统13,从屏蔽对磁盘或磁盘阵列中相同的待读取文件数据的重复读取,导致磁盘或磁盘阵列紧张,影响磁盘磁盘阵列的IO性能。由于待读取文件数据存储在至少一个存储页中,或者待读取文件数据划分成若干子文件数据存储在不同的磁盘上,在存储子系统13基于文件操作任务访问磁盘或磁盘阵列时,会将文件操作任务分配到不同的磁盘或磁盘阵列上,以达到压力均分,以降低磁盘或磁盘阵列的IO压力。在从缓存子系统12中直接获取待读取文件数据或接收来自存储子系统13的待读取文件数据时,均需更新缓存空间的文件数据,以避免待读取文件数据被缓存子系统12预设的淘汰算法淘汰,无法实现在缓存子系统12中屏蔽对相同的待读取文件数据的文件操作任务重复读取。

在一具体实施方式中,基于DAS架构存储服务器的虚拟文件系统,在实现对任务类型为写文件任务的文件操作任务进行处理时,以屏蔽后续对该文件操作任务所包含的待写入文件数据的重复读取。

具体地,缓存子系统12,用于在接收到文件操作任务的任务类型为写文件任务时,文件操作任务包括待写入文件数据;将待写入文件数据添加到缓存空间内,更新缓存空间的文件数据;并将文件操作任务发送给存储子系统13。可以理解地,每一任务类型为写文件任务的文件操作任务均包括待写入文件数据,缓存子系统12接收到该文件操作任务时,需将文件操作任务对应的待写入文件数据写入缓存空间,形成缓存空间的文件数据,使得缓存子系统12在后续接收到任务类型为读文件数据的文件操作任务时,可从缓存空间中将新写入缓存空间的文件数据作为相应的待读取文件数据发送给任务管理子系统11,以屏蔽对磁盘或磁盘阵列中相同的待读取文件数据的重复读取,避免磁盘或磁盘阵列紧张,从而影响磁盘或磁盘阵列的IO性能。

存储子系统13,用于接收文件操作任务,并存储待写入文件数据。具体地,存储子系统13将磁盘或磁盘阵列依空间大小划分成存储段、存储块和存储页三级存储结构,并将文件数据存储在至少一个存储页上。或者,存储子系统13将存储在存储子系统13中的文件数据划分成若干子文件数据,并将若干子文件数据均匀分布在磁盘上。可以理解地,将待写入文件数据存储在至少一个存储页中,或者将待写入文件数据划分成若干子文件数据存储在不同的磁盘上,对文件数据进行访问(包括读写文件任务)时会使用不同的磁盘,从而实现在大并发访问磁盘时,访问量是分配到不同的磁盘上,使得每一磁盘的IO压力降低,这样避免了单块磁盘IO短板对整体性能的影响。

缓存子系统12基于文件操作任务写入待写入文件数据包括随机写入和顺序写入两种情况。在顺序写入时,无需指定将待写入文件数据写入缓存空间的写入位置,缓存子系统12根据待写入文件数据的文件大小,将待写入文件数据写入当前缓存空间的文件数据的尾部,并将待写入文件数据提交到存储子系统13,由存储子系统13将待写入文件数据写入具体磁盘上,完成写操作。在随机写入的情况下,需指定待写入文件数据在缓存空间的写入位置,缓存子系统12根据起始位置,确定具体缓存页,并将待写入文件数据写入具体缓存页中。同时,缓存子系统12将任务类型为写文件任务的文件操作任务发送给存储子系统13,由存储子系统13将待写入文件数据写入具体磁盘上,完成写操作。

本实施例提供一种基于DAS架构存储服务器的虚拟文件系统,用于实现任务类型为文件管理任务的文件操作任务进行处理,该文件管理任务包括创建文件任务、删除文件任务、修改文件任务或查找文件任务。具体地,该基于DAS架构存储服务器的虚拟文件系统包括:

任务管理子系统11,用于在文件操作任务的任务类型为管理文件任务时,将文件操作任务发送给目录子系统14。其中,管理文件任务包括创建文件任务、删除文件任务、修改文件任务或查找文件任务。

目录子系统14,用于接收并执行文件操作任务。本实施例中采用红黑树数据结构管理存储子系统13中的每一文件数据对应的文件目录信息,目录子系统14接收到任务类型为管理文件任务的文件操作任务时,可根据文件操作任务分别实现对文件的创建、删除、修改或查找功能。

进一步地,在文件操作任务的任务类型为创建文件任务时,该基于DAS架构存储服务器的虚拟文件系统还包括:

目录子系统14,用于在文件操作任务的任务类型为创建文件任务时,判断文件操作任务所要创建的文件的文件大小是否已确定。可以理解地,目录子系统14在接收到任务类型为创建文件任务的文件操作任务时,根据文件操作任务对应的任务数据块确定该文件操作任务所要创建的文件的文件大小是否已确定。

目录子系统14,用于在文件大小已确定时,通过任务管理子系统11向存储子系统13发送申请缓存空间请求,接收存储子系统13的分配缓存空间;基于文件操作任务生成一创建文件目录信息,将创建文件目录信息与分配缓存空间相关联,并将创建文件目录信息添加到预设数据结构中。在VOD点播视频等场景下,文件操作任务所要创建文件的文件大小已确定。具体地,目录子系统14需先通过任务管理子系统11向存储子系统13发出申请X大小空间的缓存空间请求,以调用存储子系统13接口。存储子系统13接收到缓存空间请求后,计算X大小空间对应的存储段的个数Y,并将Y个存储段均分在所有磁盘上,以形成分配缓存空间。存储子系统13将分配好的分配缓存空间对应的段数据结构返回给目录子系统14,段数据结构里记录存储段所包含的存储块信息。目录子系统14基于文件操作任务生成一创建文件目录信息,并将该创建文件目录信息与接收到分配缓存空间对应的段数据结构相关联。目录子系统14将创建文件目录信息添加到红黑树数据结构中,完成一个文件大小已确定的文件的创建。可以理解地,为了分得更细,还可将X大小空间按存储块为单位进行划分,计算存储块的数量,并将所有存储块均分在所有磁盘上,以形成分配缓存空间;相应地,存储子系统13向目录子系统14返回块数据结构,块数据结构里记录存储块所包含的存储页信息。

目录子系统14,用于在文件大小未确定时,基于文件操作任务生成一创建文件目录信息,并将创建文件目录信息添加到预设数据结构中。在文件操作任务所要创建文件的文件大小未确定的情况下,只需基于文件操作任务生成一创建文件目录信息,再将创建文件目录信息添加到红黑树数据结构中,即可完成一个文件大小未确定的文件的创建,在将待写入文件数据写入文件大小未确定的文件时再临时申请缓存空间,每次临时申请可申请一个存储段的缓存空间,将待写入文件数据写入申请到的缓存空间,并释放缓存空间(存储段)没有使用的存储块。

本实施例所提供的基于DAS架构存储服务器的虚拟文件系统,通过建立存储子系统13,使多个请求终端访问相同的文件数据时,实际访问的是缓存空间中的文件数据,不对磁盘或磁盘阵列造成读写压力,减少磁盘或磁盘阵列的IO支出。另外,存储子系统13将磁盘或磁盘阵列依空间大小划分成存储段、存储块和存储页三级存储结构,并将文件数据存储在至少一个存储页上;或者,存储子系统13将存储在存储子系统13中的文件数据划分成若干子文件数据,并将若干子文件数据均匀分布在所有磁盘上。上述两种存储方式,均可使得一文件数据存储在不同的磁盘上,降低用户访问同一磁盘上的文件数据的概率,在大并发访问磁盘时,将访问量分配给所有磁盘,避免单块磁盘IO短板对整个性能造成影响。

实施例2

本实施例提供一种基于DAS架构存储服务器的虚拟文件系统的文件管理方法,用于实现对存储在存储子系统13中的文件数据进行访问(包括读写操作),即用于根据任务类型为读写文件任务的文件操作任务获取待读取文件数据或将待写入文件数据存储在存储子系统13。具体地,该基于DAS架构存储服务器的虚拟文件系统的文件管理方法包括:

S10:任务管理子系统11接收来自请求终端的文件操作任务,并确定文件操作任务的任务类型。具体地,文件操作任务的任务类型包括读写文件任务和管理文件任务;其中,读写文件任务包括读文件任务和写文件任务;管理文件任务包括创建文件任务、删除文件任务、修改文件任务和查找文件任务。

S20:任务管理子系统11在文件操作任务的任务类型为读写文件任务时,将文件操作任务发送给缓存子系统12。即任务管理子系统11在接收到文件操作任务时,需根据文件操作任务对应的任务数据块确定文件操作任务的任务类型。

S30:缓存子系统12接收文件操作任务;在文件操作任务的任务类型为读文件任务时,从缓存空间中获取与文件操作任务相对应的待读取文件数据,并将待读取文件数据发送给任务管理子系统11;或者,在文件操作任务的任务类型为写文件任务时,将文件操作任务对应的待写入文件数据写入缓存空间。可以理解地,在文件操作任务的任务类型为写文件任务时,文件操作任务包含待写入文件数据,将待写入文件数据写入缓存空间并缓存,以使缓存子系统12接收到下一任务类型为读文件任务时,可从缓存空间获取的相应待读取文件数据,并发送给任务管理子系统11。

S40:任务管理子系统11接收待读取文件数据,并将待读取文件文件数据发送给请求终端,以使请求终端获取与文件操作任务相应的待读取文件数据。

S50:任务管理子系统11在文件操作任务的任务类型为管理文件任务时,将文件操作任务发送给目录子系统14。其中,管理文件任务包括创建文件任务、删除文件任务、修改文件任务或查找文件任务。

S60:目录子系统14接收并执行文件操作任务。本实施例中采用红黑树数据结构管理存储子系统13中的每一文件数据对应的文件目录信息,目录子系统14接收到任务类型为管理文件任务的文件操作任务时,可根据文件操作任务分别实现对文件的创建、删除、修改或查找功能。

在该具体实施方式中,任务管理子系统11在接收任务类型为读写文件任务的文件操作任务时,将该文件操作任务发送给缓存子系统12;缓存子系统12在文件操作任务的任务类型为读文件任务时,从缓存空间获取与文件操作任务相对应的待读取文件数据并发送给任务管理子系统11;在文件操作任务的任务类型为写文件任务时,将与文件操作任务相对应的待写入文件数据写入缓存空间。该虚拟文件系统中设置缓存子系统12对文件操作任务进行处理,可屏蔽对磁盘或磁盘阵列的重复读取,以降低文件操作任务对磁盘或磁盘阵列的读写压力,减少磁盘或磁盘阵列的IO支出,以保证磁盘或磁盘阵列的IO性能。

进一步地,基于DAS架构存储服务器的虚拟文件系统的文件管理方法,在对任务类型为读文件任务的文件操作任务进行处理时,可屏蔽对同一待读取文件数据的重复读取,即步骤S20具体包括:

S21:缓存子系统12在接收到文件操作任务的任务类型为读文件任务时,判断缓存空间中是否存在与文件操作任务相对应的待读取文件数据。若缓存空间中存在与文件操作任务相对应的待读取文件数据,则更新缓存空间内的文件数据,并将待读取文件数据发送给任务管理子系统11。若缓存空间不存在与文件操作任务相对应的待读取文件数据,则将文件操作任务发送给存储子系统13。

S22:存储子系统13接收文件操作任务,获取与文件操作任务相对应的待读取文件数据,并将待读取文件数据发送给缓存子系统12。

S23:缓存子系统12接收来自存储子系统13的待读取文件数据,将待读取文件数据添加到缓存空间内,更新缓存空间内的文件数据;并将待读取文件数据发送给任务管理子系统11。

缓存子系统12基于文件操作任务读取待读取文件数据包括随机读取和顺序读取两种情形。在随机读取时,需指明待读取文件数据的起始位置和文件大小,计算起始位置处于缓存空间的具体缓存页,从具体缓存页开始查找缓存空间是否存在与文件操作任务相对应的待读取文件数据,若缓存空间中存在相应的待读取文件数据,则更新缓存空间缓存的文件数据,以防止待读取文件数据被缓存子系统12预设的淘汰算法淘汰,并将待读取文件数据发送给任务管理子系统11;若缓存空间中不存在相应的待读取文件数据,则将文件操作任务发送给存储子系统13,由存储子系统13读取待读取文件数据。在顺序读取时,可指定待读取文件数据的起始位置,也可以采用默认的起始位置,并根据起始位置及文件大小计算起始位置在缓存空间的具体缓存页,从具体缓存页开始查找缓存空间是否存在与文件操作任务相对应的待读取文件数据,若找到则将待读取文件数据复制返回给任务管理子系统11;若没有找到则提交到存储子系统13,由存储子系统13完成读操作。

可以理解地,在缓存子系统12接收任务类型为读文件任务的文件操作任务时,先从缓存空间查找是否存在与文件操作任务相对应的待读取文件数据,在缓存空间存在待读取文件数据时,将待读取文件数据发送给任务管理子系统11,以完成该文件操作任务,无需将文件操作任务发送给存储子系统13,从屏蔽对磁盘或磁盘阵列中相同的待读取文件数据的重复读取,导致磁盘或磁盘阵列紧张,影响磁盘磁盘阵列的IO性能。由于待读取文件数据存储在至少一个存储页中,或者待读取文件数据划分成若干子文件数据存储在不同的磁盘上,在存储子系统13基于文件操作任务访问磁盘或磁盘阵列时,会将文件操作任务分配到不同的磁盘或磁盘阵列上,以达到压力均分,以降低磁盘或磁盘阵列的IO压力。在从缓存子系统12中直接获取待读取文件数据或接收来自存储子系统13的待读取文件数据时,均需更新缓存空间的文件数据,以避免待读取文件数据被缓存子系统12预设的淘汰算法淘汰,无法实现在缓存子系统12中屏蔽对相同的待读取文件数据的文件操作任务重复读取。

在一具体实施方式中,基于DAS架构存储服务器的虚拟文件系统的文件管理方法,在实现对任务类型为写文件任务的文件操作任务进行处理时,以屏蔽后续对该文件操作任务所包含的待写入文件数据的重复读取,即步骤S20还包括:

S24:缓存子系统12在接收到文件操作任务的任务类型为写文件任务时,文件操作任务包括待写入文件数据;将待写入文件数据添加到缓存空间内,更新缓存空间的文件数据;并将文件操作任务发送给存储子系统13。可以理解地,每一任务类型为写文件任务的文件操作任务均包括待写入文件数据,缓存子系统12接收到该文件操作任务时,需将文件操作任务对应的待写入文件数据写入缓存空间,形成缓存空间的文件数据,使得缓存子系统12在后续接收到任务类型为读文件数据的文件操作任务时,可从缓存空间中将新写入缓存空间的文件数据作为相应的待读取文件数据发送给任务管理子系统11,以屏蔽对磁盘或磁盘阵列中相同的待读取文件数据的重复读取,避免磁盘或磁盘阵列紧张,从而影响磁盘或磁盘阵列的IO性能。

S25:存储子系统13接收文件操作任务,并存储待写入文件数据。具体地,存储子系统13将磁盘或磁盘阵列依空间大小划分成存储段、存储块和存储页三级存储结构,并将文件数据存储在至少一个存储页上。或者,存储子系统13将存储在存储子系统13中的文件数据划分成若干子文件数据,并将若干子文件数据均匀分布在磁盘上。可以理解地,将待写入文件数据存储在至少一个存储页中,或者将待写入文件数据划分成若干子文件数据存储在不同的磁盘上,对文件数据进行访问(包括读写文件任务)时会使用不同的磁盘,从而实现在大并发访问磁盘时,访问量是分配到不同的磁盘上,使得每一磁盘的IO压力降低,这样避免了单块磁盘IO短板对整体性能的影响。

缓存子系统12基于文件操作任务写入待写入文件数据包括随机写入和顺序写入两种情况。在顺序写入时,无需指定将待写入文件数据写入缓存空间的写入位置,缓存子系统12根据待写入文件数据的文件大小,将待写入文件数据写入当前缓存空间的文件数据的尾部,并将待写入文件数据提交到存储子系统13,由存储子系统13将待写入文件数据写入具体磁盘上,完成写操作。在随机写入的情况下,需指定待写入文件数据在缓存空间的写入位置,缓存子系统12根据起始位置,确定具体缓存页,并将待写入文件数据写入具体缓存页中。同时,缓存子系统12将任务类型为写文件任务的文件操作任务发送给存储子系统13,由存储子系统13将待写入文件数据写入具体磁盘上,完成写操作。

本实施例提供一种基于DAS架构存储服务器的虚拟文件系统的文件管理方法,用于实现任务类型为文件管理任务的文件操作任务进行处理,该文件管理任务包括创建文件任务、删除文件任务、修改文件任务或查找文件任务。

进一步地,在文件操作任务的任务类型为创建文件任务时,该基于DAS架构存储服务器的虚拟文件系统的文件管理方法的步骤S60具体包括:

S61:目录子系统14在文件操作任务的任务类型为创建文件任务时,判断文件操作任务所要创建的文件的文件大小是否已确定。可以理解地,目录子系统14在接收到任务类型为创建文件任务的文件操作任务时,根据文件操作任务对应的任务数据块确定该文件操作任务所要创建的文件的文件大小是否已确定。

S62:目录子系统14在文件大小已确定时,通过任务管理子系统11向存储子系统13发送申请缓存空间请求,接收存储子系统13的分配缓存空间;基于文件操作任务生成一创建文件目录信息,将创建文件目录信息与分配缓存空间相关联,并将创建文件目录信息添加到预设数据结构中。在VOD点播视频等场景下,文件操作任务所要创建文件的文件大小已确定。具体地,目录子系统14需先通过任务管理子系统11向存储子系统13发出申请X大小空间的缓存空间请求,以调用存储子系统13接口。存储子系统13接收到缓存空间请求后,计算X大小空间对应的存储段的个数Y,并将Y个存储段均分在所有磁盘上,以形成分配缓存空间。存储子系统13将分配好的分配缓存空间对应的段数据结构返回给目录子系统14,段数据结构里记录存储段所包含的存储块信息。目录子系统14基于文件操作任务生成一创建文件目录信息,并将该创建文件目录信息与接收到分配缓存空间对应的段数据结构相关联。目录子系统14将创建文件目录信息添加到红黑树数据结构中,完成一个文件大小已确定的文件的创建。可以理解地,为了分得更细,还可将X大小空间按存储块为单位进行划分,计算存储块的数量,并将所有存储块均分在所有磁盘上,以形成分配缓存空间;相应地,存储子系统13向目录子系统14返回块数据结构,块数据结构里记录存储块所包含的存储页信息。

S63:目录子系统14在文件大小未确定时,基于文件操作任务生成一创建文件目录信息,并将创建文件目录信息添加到预设数据结构中。在文件操作任务所要创建文件的文件大小未确定的情况下,只需基于文件操作任务生成一创建文件目录信息,再将创建文件目录信息添加到红黑树数据结构中,即可完成一个文件大小未确定的文件的创建,在将待写入文件数据写入文件大小未确定的文件时再临时申请缓存空间,每次临时申请可申请一个存储段的缓存空间,将待写入文件数据写入申请到的缓存空间,并释放缓存空间(存储段)没有使用的存储块。

本实施例所提供的基于DAS架构存储服务器的虚拟文件系统的文件管理方法,通过建立存储子系统13,使多个请求终端访问相同的文件数据时,实际访问的是缓存空间中的文件数据,不对磁盘或磁盘阵列造成读写压力,减少磁盘或磁盘阵列的IO支出。另外,存储子系统13将磁盘或磁盘阵列依空间大小划分成存储段、存储块和存储页三级存储结构,并将文件数据存储在至少一个存储页上;或者,存储子系统13将存储在存储子系统13中的文件数据划分成若干子文件数据,并将若干子文件数据均匀分布在所有磁盘上。上述两种存储方式,均可使得一文件数据存储在不同的磁盘上,降低用户访问同一磁盘上的文件数据的概率,在大并发访问磁盘时,将访问量分配给所有磁盘,避免单块磁盘IO短板对整个性能造成影响。

本发明是通过几个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换和等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1