一种输入输出IO请求处理方法及文件服务器与流程

文档序号:17849621发布日期:2019-06-11 22:05阅读:177来源:国知局

本发明涉及电子信息领域,尤其涉及一种输入输出IO请求处理方法及文件服务器。



背景技术:

Linux系统是一种多用户、多任务、支持多线程和多中央处理器(Central Processing Unit,CPU)的操作系统,Linux系统中的文件系统包括不同的物理文件系统。由于不同的物理文件系统具有不同的结构和处理方式,在Linux系统中,可以通过虚拟文件系统(Virtual File System,VFS)处理不同的物理文件系统。

现有技术中,当一个VFS接收到用户的输入输出(input output,IO)请求时,不论用户的IO请求的服务等级是否相同,均通过VFS进行相同的处理,因此,不能够满足用户的IO请求不同的服务等级需求。



技术实现要素:

本发明的实施例提供一种输入输出IO请求处理方法及文件服务器,能够解决现有技术中不能够满足用户的IO请求不同的服务等级需求的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,本发明的实施例提供一种输入输出IO请求处理方法,所述方法应用于文件系统,所述文件系统包括虚拟文件系统层、块IO层和设备驱动层,所述文件系统还包括服务等级信息库,所述服务等级信息库包括:用户的服务等级和所述虚拟文件系统层的缓存队列的第一对应关系,所述用户的服务等级、所述块IO层的缓存队列以及在所述块IO层的缓存队列中调度用户IO请求的调度算法的第二对应关系,所述用户的服务等级和所述设备驱动层的缓存队列的第三对应关系,所述方法包括:

所述虚拟文件系统层接收第一用户的IO请求,所述第一用户的IO请求携带所述第一用户的服务等级,根据所述第一用户的服务等级查询所述服务等级信息库中的所述第一对应关系,确定所述第一用户的等级所对应的所述虚拟文件系统层的缓存队列,将所述第一用户的IO请求加入确定出的虚拟文件系统层的缓存队列;

所述块IO层接收来自所述确定出的虚拟文件系统层的缓存队列中的所述第一用户的IO请求,根据所述第一用户的服务等级查询所述服务等级信息库中的所述第二对应关系,确定所述第一用户的等级所对应的所述块IO层的缓存队列以及调度所述第一用户的IO请求的调度算法,将所述第一用户的IO请求加入确定的所述第一用户的等级所对应的所述块IO层的缓存队列,并根据确定的调度所述第一用户的IO请求的调度算法对所述块IO层的缓存队列中的所述第一用户的IO请求进行调度;

所述设备驱动层接收来自所述第一用户的服务等级所对应的所述块IO层的缓存队列中调度后的所述用户的IO请求,根据所述第一用户的服务等级查询所述服务等级信息库中的所述第三对应关系,确定所述第一用户的服务等级对应的所述设备驱动层的缓存队列,将所述调度后的所述用户的IO请求加入确定出的所述第一用户的服务等级对应的所述设备驱动层的缓存队列进行处理。

结合第一方面,在第一方面的第一种可能的实现方式中,

所述虚拟文件系统层接收第二用户的IO请求,所述第二用户的IO请求携带所述第二用户的服务等级;

根据所述第二用户的服务等级查询所述服务等级信息库中的所述第一对应关系,当所述第一对应关系不包含所述第二用户的服务等级和所述虚拟文件系统层的缓存队列的对应关系时,根据所述第二用户的服务等级在所述虚拟文件系统层为所述第二用户的IO请求创建缓存队列;

所述块IO层根据所述第二用户的服务等级在所述块IO层为所述第二用户的IO请求创建缓存队列,确定在所述块IO层中为所述第二用户的IO请求创建的缓存队列中调度所述第二用户的IO请求的算法;

所述设备驱动层根据所述第二用户的服务等级在所述设备驱动层为在所述块IO层确定的调度算法调度后的所述第二用户的IO请求创建缓存队列。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,还包括:

在所述服务等级信息库中的所述第一对应关系中记录所述第二用户的服务等级和在所述虚拟文件系统层为所述第二用户的IO请求创建的缓存队列,在所述第二对应关系中记录所述第二用户的服务等级、在所述块IO层为所述第二用户的IO请求创建的缓存队列以及在所述块IO层中为所述第二用户的IO请求创建的缓存队列中调度所述第二用户的IO请求的调度算法的对应关系;在所述第三对应关系中记录所述第二用户的服务等级和在所述设备驱动层为在所述块IO层确定的调度算法调度后的所述第二用户的IO请求创建的缓存队列的对应关系。

第二方面,本发明的实施例提供一种文件服务器,所述文件服务器运行文件系统,所述文件系统包括虚拟文件系统层、块IO层和设备驱动层,所述文件系统还包括服务等级信息库,所述服务等级信息库包括:用户的服务等级和所述虚拟文件系统层的缓存队列的第一对应关系,所述用户的服务等级、所述块IO层的缓存队列以及在所述块IO层的缓存队列中调度用户IO请求的调度算法的第二对应关系,所述用户的服务等级和所述设备驱动层的缓存队列的第三对应关系,所述文件服务器包括:

接收单元,用于通过所述虚拟文件系统层接收第一用户的IO请求,所述第一用户的IO请求携带所述第一用户的服务等级;

处理单元,用于根据所述第一用户的服务等级查询所述服务等级信息库中的所述第一对应关系,确定所述第一用户的等级所对应的所述虚拟文件系统层的缓存队列,将所述第一用户的IO请求加入确定出的虚拟文件系统层的缓存队列;

所述接收单元,还用于通过所述块IO层接收来自所述确定出的虚拟文件系统层的缓存队列中的所述第一用户的IO请求;

所述处理单元,还用于根据所述第一用户的服务等级查询所述服务等级信息库中的所述第二对应关系,确定所述第一用户的等级所对应的所述块IO层的缓存队列以及调度所述第一用户的IO请求的调度算法,将所述第一用户的IO请求加入确定的所述第一用户的等级所对应的所述块IO层的缓存队列,并根据确定的调度所述第一用户的IO请求的调度算法对所述块IO层的缓存队列中的所述第一用户的IO请求进行调度;

所述接收单元,还用于通过所述设备驱动层接收来自所述第一用户的服务等级所对应的所述块IO层的缓存队列中调度后的所述用户的IO请求;

所述处理单元,还用于根据所述第一用户的服务等级查询所述服务等级信息库中的所述第三对应关系,确定所述第一用户的服务等级对应的所述设备驱动层的缓存队列,将所述调度后的所述用户的IO请求加入确定出的所述第一用户的服务等级对应的所述设备驱动层的缓存队列进行处理。

结合第二方面,在第二方面的第一种可能的实现方式中,

所述接收单元,还用于通过所述虚拟文件系统层接收第二用户的IO请求,所述第二用户的IO请求携带所述第二用户的服务等级;

所述处理单元,还用于根据所述第二用户的服务等级查询所述服务等级信息库中的所述第一对应关系,当所述第一对应关系不包含所述第二用户的服务等级和所述虚拟文件系统层的缓存队列的对应关系时,根据所述第二用户的服务等级在所述虚拟文件系统层为所述第二用户的IO请求创建缓存队列;

所述处理单元,还用于通过所述块IO层根据所述第二用户的服务等级在所述块IO层为所述第二用户的IO请求创建缓存队列,确定在所述块IO层中为所述第二用户的IO请求创建的缓存队列中调度所述第二用户的IO请求的调度算法;

所述处理单元,还用于通过所述设备驱动层根据所述第二用户的服务等级在所述设备驱动层为在所述块IO层确定的调度算法调度后的所述第二用户的IO请求创建缓存队列。

结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,

所述文件服务器还包括存储单元,用于在所述服务等级信息库中的所述第一对应关系中记录所述第二用户的服务等级和在所述虚拟文件系统层为所述第二用户的IO请求创建的缓存队列,在所述第二对应关系中记录所述第二用户的服务等级、在所述块IO层为所述第二用户的IO请求创建的缓存队列以及在所述块IO层中为所述第二用户的IO请求创建的缓存队列中调度所述第二用户的IO请求的调度算法的对应关系;在所述第三对应关系中记录所述第二用户的服务等级和在所述设备驱动层为在所述块IO层确定的调度算法调度后的所述第二用户的IO请求创建的缓存队列的对应关系。

第三方面,本发明实施例提供一种文件服务器,所述文件服务器运行文件系统,所述文件系统包括虚拟文件系统层、块IO层和设备驱动层,所述文件系统还包括服务等级信息库,所述服务等级信息库包括:用户的服务等级和所述虚拟文件系统层的缓存队列的第一对应关系,所述用户的服务等级、所述块IO层的缓存队列以及在所述块IO层的缓存队列中调度用户IO请求的调度算法的第二对应关系,所述用户的服务等级和所述设备驱动层的缓存队列的第三对应关系,所述文件服务器运行文件系统,包括处理器,总线,存储器,其中,所述处理器及所述存储器通过所述总线相互连接;

所述处理器,用于通过所述虚拟文件系统层接收第一用户的IO请求,所述第一用户的IO请求携带所述第一用户的服务等级,根据所述第一用户的服务等级查询所述服务等级信息库中的所述第一对应关系,确定所述第一用户的等级所对应的所述虚拟文件系统层的缓存队列,将所述第一用户的IO请求加入确定出的虚拟文件系统层的缓存队列;

所述处理器,还用于通过所述块IO层接收来自所述确定出的虚拟文件系统层的缓存队列中的所述第一用户的IO请求,根据所述第一用户的服务等级查询所述服务等级信息库中的所述第二对应关系,确定所述第一用户的等级所对应的所述块IO层的缓存队列以及调度所述第一用户的IO请求的调度算法,将所述第一用户的IO请求加入确定的所述第一用户的等级所对应的所述块IO层的缓存队列,并根据确定的调度所述第一用户的IO请求的调度算法对所述块IO层的缓存队列中的所述第一用户的IO请求进行调度;

所述处理器,还用于通过所述设备驱动层接收来自所述第一用户的服务等级所对应的所述块IO层的缓存队列中调度后的所述用户的IO请求,根据所述第一用户的服务等级查询所述服务等级信息库中的所述第三对应关系,确定所述第一用户的服务等级对应的所述设备驱动层的缓存队列,将所述调度后的所述用户的IO请求加入确定出的所述第一用户的服务等级对应的所述设备驱动层的缓存队列进行处理。

结合第三方面,在第三方面的第一种可能的实现方式中,

所述处理器,还用于通过所述虚拟文件系统层接收第二用户的IO请求,所述第二用户的IO请求携带所述第二用户的服务等级;

所述处理器,还用于根据所述第二用户的服务等级查询所述服务等级信息库中的所述第一对应关系,当所述第一对应关系不包含所述第二用户的服务等级和所述虚拟文件系统层的缓存队列的对应关系时,根据所述第二用户的服务等级在所述虚拟文件系统层为所述第二用户的IO请求创建缓存队列;

所述处理器,还用于通过所述块IO层根据所述第二用户的服务等级在所述块IO层为所述第二用户的IO请求创建缓存队列,确定在所述块IO层中为所述第二用户的IO请求创建的缓存队列中调度所述第二用户的IO请求的调度算法;

所述处理器,还用于通过所述设备驱动层根据所述第二用户的服务等级在所述设备驱动层为在所述块IO层确定的调度算法调度后的所述第二用户的IO请求创建缓存队列。

结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,

所述存储器,还用于在所述服务等级信息库中的所述第一对应关系中记录所述第二用户的服务等级和在所述虚拟文件系统层为所述第二用户的IO请求创建的缓存队列的对应关系,在所述第二对应关系中记录所述第二用户的服务等级、在所述块IO层为所述第二用户的IO请求创建的缓存队列以及在所述块IO层中为所述第二用户的IO请求创建的缓存队列中调度所述第二用户的IO请求的调度算法的对应关系;在所述第三对应关系中记录所述第二用户的服务等级和在所述设备驱动层为在所述块IO层确定的调度算法调度后的所述第二用户的IO请求创建的缓存队列的对应关系。

本发明实施例提供的输入输出IO请求处理方法及文件服务器,通过虚拟文件系统层接收第一用户的IO请求,将第一用户的IO请求加入根据第一用户的服务等级确定出的虚拟文件系统层的缓存队列;块IO层接收来自确定出的虚拟文件系统层的缓存队列中的第一用户的IO请求,将第一用户的IO请求加入确定的第一用户的等级所对应的块IO层的缓存队列,并根据确定的调度第一用户的IO请求的调度算法对块IO层的缓存队列中的第一用户的IO请求进行调度;设备驱动层接收来自第一用户的服务等级所对应的块IO层的缓存队列中调度后的用户的IO请求,将调度后的第一用户的IO请求加入确定出的第一用户的服务等级对应的设备驱动层的缓存队列进行处理,从而满足用户的IO请求的不同服务等级需求。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种文件系统结构示意图;

图2为本发明实施例提供的一种IO请求处理方法流程示意图;

图3为本发明另一实施例提供的一种IO请求处理方法流程示意图;

图4为本发明实施例提供的一种IO请求处理方法流程示意图;

图5为本发明实施例提供的一种文件服务器结构示意图;

图6为本发明另一实施例提供的一种文件服务器结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种输入输出IO请求处理方法,应用于文件系统,其中,文件系统10的结构如图1所示,包括虚拟文件系统层101、块IO层102,设备驱动层103,文件系统10还可以包括服务等级信息库104,服务等级信息库104可以包括:用户的服务等级和虚拟文件系统层101的缓存队列的第一对应关系,用户的服务等级、块IO层102的缓存队列以及在块IO层102的缓存队列中调度用户IO请求的调度算法的第二对应关系,用户的服务等级和设备驱动层103的缓存队列的第三对应关系。示例的,文件服务器运行文件系统10实现输入输出IO请求处理方法。可选的,文件服务器可以为通用服务器运行文件系统10,或其他类似的服务器,本发明实施例对此不作限定。如图2所示,当文件服务器接收到用户的IO请求时,实施本发明实施例提供的IO请求处理方法,具体如下:

201、虚拟文件系统层101接收第一用户的IO请求,并将第一用户的IO请求加入确定出的虚拟文件系统层101的缓存队列。

其中,第一用户的IO请求携带第一用户的服务等级,即第一用户的IO请求需要满足第一用户的服务等级。可选的,该第一用户的服务等级为第一用户在服务等级协议(Service Level Agreement,SLA)中的服务等级。

其中,SLA是服务提供商和服务消费者双方之间经过协商、正式拟定的协议,它记录了服务提供商和服务消费者双方在服务、优先级、责任、保证及担保方面达成的共识。也可以是根据文件服务器的性能为每个用户确定的服务等级。根据用户的服务等级,文件服务器提供对应的处理性能。本发明实施例中的用户可以为应用程序、客户端和虚拟机等,对此,本发明实施例不作限定。

结合图1对应的文件系统10,虚拟文件系统层101可以根据第一用户的服务等级查询服务等级信息库104中的第一对应关系,确定第一用户的等级所对应的虚拟文件系统层101的缓存队列,将第一用户的IO请求加入确定出的虚拟文件系统层101的缓存队列。

可选的,可以通过顺序查找,二分查找,哈希表法,分块查找等查找方法在服务等级信息库104中查找第一用户的IO请求所对应的第一对应关系,第二对应关系及第三对应关系,在此,对于具体通过哪种方法在服务等级信息库104中进行查找,本发明实施例不做具体限制。

具体的,服务等级信息库104可以包括:用户的服务等级和虚拟文件系统层101的缓存队列的第一对应关系,用户的服务等级、块IO层102的缓存队列以及在块IO层102的缓存队列中调度用户IO请求的调度算法的第二对应关系,用户的服务等级和设备驱动层103的缓存队列的第三对应关系。换句话说,对于每一个用户的IO请求而言,在服务等级信息库104中都有第一对应关系,第二对应关系及第三对应关系。可选的,存储在服务等级信息库104中的每一个用户的IO请求与它所对应第一对应关系,第二对应关系及第三对应关系可以以列表的形式存储在服务等级信息库104中。

202、块IO层102接收来自确定出的虚拟文件系统层101的缓存队列中的第一用户的IO请求,将第一用户的IO请求加入确定的第一用户的等级所对应的块IO层102的缓存队列,并根据确定的调度第一用户的IO请求的调度算法对确定出的块IO层102的缓存队列中的第一用户的IO请求进行调度。

结合图1对应的文件系统10,块IO层102可以接收来自确定出的虚拟文件系统层101的缓存队列中的第一用户的IO请求,根据第一用户的服务等级查询服务等级信息库104中的第二对应关系。其中,第二对应关系用户的服务等级、块IO层102的缓存队列以及在块IO层102的缓存队列中调度用户IO请求的调度算法之间的关系。

具体的,块IO层可以根据第一用户的服务等级查询服务等级信息库104中的第二对应关系,确定第一用户的等级所对应的块IO层102的缓存队列以及调度第一用户的IO请求的调度算法,将第一用户的IO请求加入确定的第一用户的等级所对应的块IO层102的缓存队列,并根据确定的调度第一用户的IO请求的调度算法对块IO层102的缓存队列中的第一用户的IO请求进行调度。

203、设备驱动层103接收来自第一用户的服务等级所对应的块IO层102的缓存队列中调度后的用户的IO请求,并将调度后的用户的IO请求加入确定出的第一用户的服务等级对应的设备驱动层103的缓存队列进行处理。

结合图1对应的文件系统10,设备驱动层103可以接收来自第一用户的服务等级所对应的块IO层102的缓存队列中调度后的用户的IO请求,根据第一用户的服务等级查询服务等级信息库104中的第三对应关系。其中,第三对应关系为用户的服务等级和设备驱动层103的缓存队列之间的关系。

具体的,设备驱动层可以根据第一用户的服务等级查询服务等级信息库中的第三对应关系,确定第一用户的服务等级对应的设备驱动层的缓存队列,将调度后的用户的IO请求加入确定出的第一用户的服务等级对应的设备驱动层的缓存队列进行处理。

可选的,可以通过设备驱动层103缓存队列中进行处理。

虚拟文件系统层101、块IO层102和设备驱动层103中均有缓存队列,同一层中的不同缓存队列,对于不同的用户服务等级,例如,服务等级高的用户请求可以加入高等级的缓存队列,从而得到优先处理,或者分配更多资源等。资源可以为计算资源、带宽和缓存空间等中的一种或多种,本发明实施例对此不作限定。根据用户的IO请求携带不同的服务等级将用户的IO请求加入到相应的缓存队列中进行处理,可以满足IO请求不同的服务等级需求。

本发明实施例提供的IO请求处理方法,通过虚拟文件系统层101接收第一用户的IO请求,将第一用户的IO请求加入根据第一用户的服务等级确定出的虚拟文件系统层101的缓存队列;块IO层102接收来自确定出的虚拟文件系统层101的缓存队列中的第一用户的IO请求,将第一用户的IO请求加入确定的第一用户的等级所对应的块IO层102的缓存队列,并根据确定的调度第一用户的IO请求的调度算法对块IO层102的缓存队列中的第一用户的IO请求进行调度;设备驱动层103接收来自第一用户的服务等级所对应的块IO层102的缓存队列中调度后的用户的IO请求,将调度后的第一用户的IO请求加入确定出的第一用户的服务等级对应的设备驱动层103的缓存队列进行处理。根据用户的IO请求携带的服务等级查找该用户请求的IO请求所对应的第一对应关系,第二关系及第三关系,根据该用户的IO请求所对应的第一对应关系,第二关系及第三关系确定该用户的IO请求所对应的缓存队列,从而满足用户的IO请求不同的服务等级需求。

本发明另一实施例提供一种IO请求处理方法,应用于文件系统10,基于图2对应的实施例,本实施例文件服务器运行文件系统10,接收A用户的IO请求和B用户的IO请求为例进行说明。当然,这并不代表本发明局限于处理A用户的IO请求和B用户的IO请求。参照图3所示,本实施例提供的IO请求处理方法包括以下步骤:

301、接收A用户的IO请求和B用户的IO请求。

结合图1对应的文件系统10,可以通过虚拟文件系统层接收A用户的IO请求和B用户的IO请求。其中,A用户的IO请求携带A用户的服务等级,B用户的IO请求携带B用户的服务等级。A用户的IO请求需要满足A用户的服务等级,B用户的IO请求需要满足B用户的服务等级。A用户的服务等级与B用户的服务等级不同。

302、根据A用户的IO请求和B用户的IO请求携带的服务等级分别查询服务等级信息库104。

结合图1对应的文件系统10,虚拟文件系统101可以根据A用户的IO请求和B用户的IO请求携带的服务等级分别查询服务等级信息库104中的第一对应关系。其中,第一对应关系为用户的服务等级和虚拟文件系统层101的缓存队列之间的对应关系。可选的,可以通过顺序查找,二分查找,哈希表法,分块查找等查找方法在服务等级信息库104中分别查找A用户的IO请求和B用户的IO请求对应的第一对应关系,在此,对于具体通过哪种方法在服务等级信息库104中进行查找,本发明实施例不做具体限制。

进一步地,服务等级信息库104包括:用户的服务等级和所述虚拟文件系统层101的缓存队列的第一对应关系,所述用户的服务等级、所述块IO层102的缓存队列以及在所述块IO层102的缓存队列中调度用户IO请求的调度算法的第二对应关系,所述用户的服务等级和所述设备驱动层103的缓存队列的第三对应关系。可选的,存储在服务等级信息库104中的每一个用户的IO请求与它所对应第一对应关系,第二对应关系及第三对应关系可以以列表的形式存储在服务等级信息库104中。

303、将A用户的IO请求和B用户的IO请求分别加入确定出的虚拟文件系统层101的缓存队列。

结合图1对应的文件系统10,虚拟文件系统层101可以根据A用户的服务等级和B用户的服务等级分别查询服务等级信息库104中的第一对应关系,确定A用户的服务等级应的虚拟文件系统层101的缓存队列A,确定B用户的服务等级所对应的虚拟文件系统层101的缓存队列B,将A用户的IO请求请求加入确定出的虚拟文件系统层101的缓存队列A,将B用户的IO请求加入确定出的虚拟文件系统层101的缓存队列B。

304、块IO层102接收来自虚拟文件系统层101的缓存队列A中的A用户的IO请求和来自虚拟文件系统层101的缓存队列B中的B用户的IO请求,将A用户的IO请求加入根据用户A的服务等级确定出的块IO层102的缓存队列A,将B用户的IO请求加入根据用户B的服务等级确定出的块IO层102的缓存队列B,并根据确定出的调度A用户的IO请求的调度算法对块IO层102的缓存队列A中的A用户的IO请求进行调度,根据确定出的调度B用户的IO请求的调度算法对块IO层102的缓存队列B中的B用户的IO请求进行调度。

结合图1对应的文件系统10,块IO层102可以接收来自虚拟文件系统层101的缓存队列A中的A用户的IO请求,接收来自虚拟文件系统层101的缓存队列B中的B用户的IO请求。根据A用户的服务等级查询服务等级信息库104中的第二对应关系确定块IO层102的缓存队列A以及在以及在块IO层102的缓存队列A中调度A用户IO请求的调度算法。根据B用户的服务等级查询服务等级信息库104中的第二对应关系确定块IO层102的缓存队列B以及在以及在块IO层102的缓存队列B中调度B用户IO请求的调度算法。其中,第二对应关系为用户的服务等级、块IO层102的缓存队列以及在块IO层102的缓存队列中调度用户IO请求的调度算法之间的关系。

块IO层将A用户的IO请求加入块IO层102的缓存队列A,根据确定出的调度A用户的IO请求的调度算法对块IO层102的缓存队列A中的A用户的IO请求进行调度;将B用户的IO请求加入块IO层102的缓存队列B,根据确定出的调度B用户的IO请求的调度算法对块IO层102的缓存队列B中的B用户的IO请求进行调度。本发明实施例中根据确定出的调度用户的IO请求的调度算法对确定出的块IO层102的缓存队列中的用户的IO请求进行调度可以是对用户的IO请求进行排序和对用户的IO请求进行合并操作中的至少一种,也可以是本领域对块IO层对用户的IO请求进行的其他操作,本发明实施例对此不作限定。

305、设备驱动层103接收来自块IO层102的缓存队列A中调度后的A用户的IO请求,根据用户A的服务等级将调度后的A用户的IO请求加入设备驱动层103的缓存队列A中进行处理;设备驱动层103接收来自块IO层102的缓存队列B中调度后的B用户的IO请求,根据用户B的服务等级将调度后的B用户的IO请求加入设备驱动层103的缓存队列B中进行处理。

结合图1对应的文件系统10,设备驱动层103接收块IO层102的缓存队列A中调度后的A用户的IO请求,根据A用户的服务等级查询服务等级信息库104中的第三对应关系确定设备驱动层103的缓存队列A,将调度后的A用户的IO请求加入设备驱动层103的缓存队列A进行处理。设备驱动层103接收块IO层102的缓存队列B中调度后的B用户的IO请求,根据B用户的服务等级查询服务等级信息库104中的第三对应关系确定设备驱动层103的缓存队列B,将调度后的B用户的IO请求加入设备驱动层103的缓存队列B进行处理。

虚拟文件系统层101、块IO层102和设备驱动层103中均有缓存队列,同一层中的不同缓存队列,对于不同的用户服务等级,例如,服务等级高的用户请求可以加入高等级的缓存队列,从而得到优先处理,或者分配更多资源等。资源可以为计算资源、带宽和缓存空间等中的一种或多种,本发明实施例对此不作限定。

结合前述实施例,还包括:具体建立的过程如图4所示,可以包括:

401、虚拟文件系统层101接收C用户的IO请求,C用户的IO请求携带C用户的服务等级。

其中,C用户的IO请求携带C用户的IO请求的服务等级。C用户的IO请求需要满足C用户的IO请求的服务等级需求。

402、根据C用户的服务等级查询服务等级信息库104中的第一对应关系,当第一对应关系不包含C用户的服务等级和虚拟文件系统层101的缓存队列的对应关系时,根据C用户的服务等级在虚拟文件系统层101为C用户的IO请求创建缓存队列C。

403、块IO层102根据C用户的服务等级在块IO层102为C用户的IO请求创建缓存队列C,确定在块IO层102中为C用户的IO请求创建的缓存队列C中调度C用户的IO请求的调度算法。

404、设备驱动层103根据C用户的服务等级在设备驱动层103为在块IO层102确定的调度算法调度后的C用户的IO请求创建缓存队列C。

结合具体的建立过程,为C用户的IO请求分别在拟文件系统层101、块IO层和设备驱动层103创建相应的缓存队列之后,还可以包括:

405、在服务等级信息库104中的第一对应关系中记录C用户的服务等级和在虚拟文件系统层101为C用户的IO请求创建的缓存队列C的对应关系,在第二对应关系中记录C用户的服务等级、在块IO层102为C用户的IO请求创建的缓存队列C以及在块IO层102中为C用户的IO请求创建的缓存队列C中调度C用户的IO请求的调度算法的对应关系;在第三对应关系中记录C用户的服务等级和在设备驱动层103为在块IO层102确定的调度算法调度后的C用户的IO请求创建的缓存队列C的对应关系。

本发明实施例提供的IO请求处理方法,根据用户的IO请求携带的服务等级,通过查询服务等级信息库104分别确定在虚拟文件系统层101、IO层102和设备驱动层103中的缓存队列,以及调度确定出的在IO层102的缓存队列中的用户的IO请求的算法,从而满足用户的IO请求不同的服务等级需求。

本发明实施例提供一种文件服务器50,所述文件服务器50运行文件系统10,文件系统10包括虚拟文件系统层101、块IO层102和设备驱动层103,文件系统10还包括服务等级信息库104,服务等级信息库104包括:用户的服务等级和虚拟文件系统层101的缓存队列的第一对应关系,用户的服务等级、块IO层102的缓存队列以及在块IO层102的缓存队列中调度用户IO请求的调度算法的第二对应关系,用户的服务等级和设备驱动层103的缓存队列的第三对应关系,如图5所示,文件服务器50包括:

接收单元501,用于通过虚拟文件系统层101接收第一用户的IO请求,第一用户的IO请求携带第一用户的服务等级。

处理单元502,用于根据第一用户的服务等级查询服务等级信息库104中的第一对应关系,确定第一用户的等级所对应的虚拟文件系统层101的缓存队列,将第一用户的IO请求加入确定出的虚拟文件系统层101的缓存队列。

接收单元501,还用于通过块IO层102接收来自确定出的虚拟文件系统层101的缓存队列中的第一用户的IO请求。

处理单元502,还用于根据第一用户的服务等级查询服务等级信息库104中的第二对应关系,确定第一用户的等级所对应的块IO层102的缓存队列以及调度第一用户的IO请求的调度算法,将第一用户的IO请求加入确定的第一用户的等级所对应的块IO层102的缓存队列,并根据确定的调度第一用户的IO请求的调度算法对块IO层102的缓存队列中的第一用户的IO请求进行调度。

接收单元501,还用于通过设备驱动层103接收来自第一用户的服务等级所对应的块IO层102的缓存队列中调度后的用户的IO请求。

处理单元502,还用于根据第一用户的服务等级查询服务等级信息库104中的第三对应关系,确定第一用户的服务等级对应的设备驱动层103的缓存队列,将调度后的用户的IO请求加入确定出的第一用户的服务等级对应的设备驱动层103的缓存队列进行处理。

可选的,接收单元501,还用于通过虚拟文件系统层101接收第二用户的IO请求,第二用户的IO请求携带第二用户的服务等级。

处理单元502,还用于根据第二用户的服务等级查询服务等级信息库104中的第一对应关系,当第一对应关系不包含第二用户的服务等级和虚拟文件系统层101的缓存队列的对应关系时,根据第二用户的服务等级在虚拟文件系统层101为第二用户的IO请求创建缓存队列。

处理单元502,还用于通过块IO层102根据第二用户的服务等级在块IO层102为第二用户的IO请求创建缓存队列,确定在块IO层102中为第二用户的IO请求创建的缓存队列中调度第二用户的IO请求的调度算法;

处理单元502,还用于通过设备驱动层103根据第二用户的服务等级在设备驱动层103为在块IO层102确定的调度算法调度后的第二用户的IO请求创建缓存队列。

可选的,文件服务器50还包括存储单元503,用于在服务等级信息库104中的第一对应关系中记录第二用户的服务等级和在虚拟文件系统层101为第二用户的IO请求创建的缓存队列,在第二对应关系中记录第二用户的服务等级、在块IO层102为第二用户的IO请求创建的缓存队列以及在块IO层102中为第二用户的IO请求创建的缓存队列中调度第二用户的IO请求的调度算法的对应关系;在第三对应关系中记录第二用户的服务等级和在设备驱动层103为在块IO层102确定的调度算法调度后的第二用户的IO请求创建的缓存队列的对应关系。

本发明实施例提供的文件服务器,通过虚拟文件系统层101接收第一用户的IO请求,如果根据第一用户的服务等级可以查找到第一用户的IO请求对应的第一对应关系,则将第一用户的IO请求加入确定出的虚拟文件系统层101的缓存队列;块IO层102接收来自确定出的虚拟文件系统层101的缓存队列中的第一用户的IO请求,将第一用户的IO请求加入确定的第一用户的等级所对应的块IO层102的缓存队列,并根据确定的调度第一用户的IO请求的调度算法对块IO层102的缓存队列中的第一用户的IO请求进行调度;设备驱动层103接收来自第一用户的服务等级所对应的块IO层102的缓存队列中调度后的用户的IO请求,将调度后的用户的IO请求加入确定出的第一用户的服务等级对应的设备驱动层103的缓存队列进行处理。根据用户的IO请求携带的服务等级查找用户的IO请求所对应的第一对应关系,第二关系及第三关系,根据用户的IO请求所对应的第一对应关系,第二关系及第三关系确定用户的IO请求所对应的缓存队列,并将用户的IO请求加入到相应的缓存队列中,从而满足用户的IO请求不同的服务等级需求。

本发明另一实施例提供一种文件服务器60,文件服务器60运行文件系统10,文件系统10包括虚拟文件系统层101、块IO层102和设备驱动层103,文件系统10还包括服务等级信息库104,服务等级信息库104包括:用户的服务等级和虚拟文件系统层101的缓存队列的第一对应关系,用户的服务等级、块IO层102的缓存队列以及在块IO层102的缓存队列中调度用户IO请求的调度算法的第二对应关系,用户的服务等级和设备驱动层103的缓存队列的第三对应关系,参照图6所示,该文件服务器60可以嵌入或本身就是微处理计算机,比如:通用计算机、客户定制机、手机终端或平板机等便携设备,该文件服务器60包括:至少一个处理器601、存储器602和总线603,该至少一个处理器601和存储器602通过总线603连接并完成相互间的通信。

该总线603可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component,外部设备互连)总线或EISA(Extended Industry Standard Architecture,扩展工业标准体系结构)总线等。该总线603可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中:

存储器602用于执行本发明方案的应用程序代码,执行本发明方案的应用程序代码保存在存储器中,并由处理器601来控制执行。

该存储器可以是只读存储器ROM或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器EEPROM、只读光盘CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。这些存储器通过总线与处理器相连接。

处理器601可能是一个中央处理器601(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。

处理器601,用于调用存储器602中的程序代码,在一种可能的实施方式中,当上述应用程序被所述处理器601执行时,实现如下功能。

处理器601,用于通过虚拟文件系统层101接收第一用户的IO请求,第一用户的IO请求携带第一用户的服务等级,根据第一用户的服务等级查询服务等级信息库104中的第一对应关系,确定第一用户的等级所对应的虚拟文件系统层101的缓存队列,将第一用户的IO请求加入确定出的虚拟文件系统层101的缓存队列。

处理器601,还用于通过块IO层102接收来自确定出的虚拟文件系统层101的缓存队列中的第一用户的IO请求,根据第一用户的服务等级查询服务等级信息库104中的第二对应关系,确定第一用户的等级所对应的块IO层102的缓存队列以及调度第一用户的IO请求的调度算法,将第一用户的IO请求加入确定的第一用户的等级所对应的块IO层102的缓存队列,并根据确定的调度第一用户的IO请求的调度算法对块IO层102的缓存队列中的第一用户的IO请求进行调度。

处理器601,还用于通过设备驱动层103接收来自第一用户的服务等级所对应的块IO层102的缓存队列中调度后的用户的IO请求,根据第一用户的服务等级查询服务等级信息库104中的第三对应关系,确定第一用户的服务等级对应的设备驱动层103的缓存队列,将调度后的用户的IO请求加入确定出的第一用户的服务等级对应的设备驱动层103的缓存队列进行处理。

可选的,处理器601,还用于通过虚拟文件系统层102接收第二用户的IO请求,第二用户的IO请求携带第二用户的服务等级。

处理器601,还用于根据第二用户的服务等级查询服务等级信息库104中的第一对应关系,当第一对应关系不包含第二用户的服务等级和虚拟文件系统层101的缓存队列的对应关系时,根据第二用户的服务等级在虚拟文件系统层101为第二用户的IO请求创建缓存队列。

处理器601,还用于通过块IO层102根据第二用户的服务等级在块IO层102为第二用户的IO请求创建缓存队列,确定在块IO层102中为第二用户的IO请求创建的缓存队列中调度第二用户的IO请求的调度算法。

处理器601,还用于通过设备驱动层103根据第二用户的服务等级在设备驱动层103为在块IO层确定的调度算法调度后的第二用户的IO请求创建缓存队列。

可选的,存储器602,还用于在服务等级信息库104中的第一对应关系中记录第二用户的服务等级和在虚拟文件系统层101为第二用户的IO请求创建的缓存队列的对应关系,在第二对应关系中记录第二用户的服务等级、在块IO层102为第二用户的IO请求创建的缓存队列以及在块IO层102中为第二用户的IO请求创建的缓存队列中调度第二用户的IO请求的调度算法的对应关系;在第三对应关系中记录第二用户的服务等级和在设备驱动层103为在块IO层确定的调度算法调度后的第二用户的IO请求创建的缓存队列的对应关系。本发明实施例提供的文件服务器,处理器601通过虚拟文件系统层101接收第一用户的IO请求,如果根据第一用户的服务等级可以查找到第一用户的IO请求对应的第一对应关系,则将第一用户的IO请求加入确定出的虚拟文件系统层101的缓存队列;块IO层102接收来自确定出的虚拟文件系统层101的缓存队列中的第一用户的IO请求,将第一用户的IO请求加入确定的第一用户的等级所对应的块IO层102的缓存队列,并根据确定的调度第一用户的IO请求的调度算法对块IO层102的缓存队列中的第一用户的IO请求进行调度;设备驱动层103接收来自第一用户的服务等级所对应的块IO层102的缓存队列中调度后的用户的IO请求,将调度后的用户的IO请求加入确定出的第一用户的服务等级对应的设备驱动层103的缓存队列进行处理,从而满足用户的IO请求不同的服务等级需求。

本发明实施例中可应用于不同的用户的IO请求携带不同的服务等级的场景,根据本发明实施例中的方法进行处理,也可以应用于同一用户的IO请求携带不同的服务等级的场景,根据本发明实施例中的方法进行处理,或者应用于不同的用户的IO请求携带相同的服务等级的场景,根据本发明实施例中的方法进行处理。本发明实施例根据用户的IO请求携带的服务等级根据本发明实施例对用户的IO请求进行处理。

通过以上的实施方式的描述,所述领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM(Random Access Memory,随机存储器)、ROM(Read Only Memory,只读内存)、EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact Disc Read Only Memory,即只读光盘)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、DSL(Digital Subscriber Line,数字用户专线)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所述介质的定影中。如本发明所使用的,盘和碟包括CD(Compact Disc,压缩光碟)、激光碟、光碟、DVD碟(Digital Versatile Disc,数字通用光)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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