首页> 中国专利> 在网络文件共享环境中管理服务质量

在网络文件共享环境中管理服务质量

摘要

本发明涉及在网络文件共享环境中管理服务质量。根据一个实施例的计算机实现的方法包括:基于NFS平台内的多个出口,将网络文件系统(NFS)平台的资源分区成多个区域;在NFS平台内的一个出口处,接收来自第一应用的、利用NFS平台的资源的请求;以及基于包括在请求中的信息,在多个区域之一内将资源的预定部分分配给第一应用。

著录项

  • 公开/公告号CN112231282A

    专利类型发明专利

  • 公开/公告日2021-01-15

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN202010673028.7

  • 申请日2020-07-14

  • 分类号G06F16/176(20190101);G06F16/182(20190101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人邸万奎

  • 地址 美国纽约阿芒克

  • 入库时间 2023-06-19 09:33:52

说明书

技术领域

本发明涉及网络文件共享,并且更具体地,本发明涉及在网络文件共享环境中实现服务质量度量。

背景技术

网络文件共享(Network file sharing,NFS)通常用于实现数据和资源的集中管理和可用性。NFS服务器可以驻留在本地或云数据中心内,其中以NFS即服务(NFS as aservice,NFSaaS)特征提供。然而,当前的NFS实现并不在内部实现服务质量(quality ofservice,QoS)功能。因此,需要快速I/O性能的高优先级客户端应用可能会被视为不需要这种性能的低优先级客户端应用。这可能会降低这种应用的性能,以及整个系统的性能。

发明内容

根据一个实施例的计算机实现的方法包括:基于NFS平台内的多个出口,将网络文件系统(NFS)平台的资源分区成多个区域;在NFS平台内的一个出口处,接收来自第一应用的、利用NFS平台的资源的请求;以及基于包括在请求中的信息,在多个区域之一内将资源的预定部分分配给第一应用。

根据另一个实施例,一种用于管理网络文件共享环境中的服务质量的计算机程序产品包括具有包含在其中的程序指令的计算机可读存储介质,其中该计算机可读存储介质本身不是暂时信号,并且其中该程序指令可由处理器执行,以使得该处理器执行方法,该方法包括基于NFS平台内的多个出口,由该处理器将网络文件系统(NFS)平台的资源分区成多个区域;由处理器在NFS平台内的一个出口处接收来自第一应用的、利用NFS平台的资源的请求;以及由处理器基于包括在请求中的信息,在多个区域之一内将资源的预定部分分配给第一应用。

根据另一实施例,一种系统包括处理器;以及与处理器集成、可由处理器执行或与处理器集成并可由处理器执行的逻辑,其中该逻辑被配置为基于NFS平台内的多个出口,将网络文件系统(NFS)平台的资源分区成多个区域;在NFS平台内的一个出口处,接收来自第一应用的、利用NFS平台的资源的请求;以及基于包括在请求中的信息,在多个区域之一内将资源的预定部分分配给第一应用。

从下面的详细描述中,本发明的其他方面和实施例将变得显而易见,当结合附图时,通过示例的方式示出了本发明的原理。

附图说明

图1描绘了根据本发明一个实施例的云计算环境。

图2描绘了根据本发明一个实施例的抽象模型层。

图3描绘了根据本发明一个实施例的云计算节点。

图4示出了根据本发明一个实施例的分层数据存储系统。

图5示出了根据本发明一个实施例的用于在网络文件共享环境中管理服务质量的方法的流程图。

图6示出了根据本发明一个实施例的提供端到端(end-to-end)服务质量(QoS)的示例性NFSaaS托管环境。

图7示出了根据本发明一个实施例的用于在客户端实现QoS的方法的流程图。

图8示出了根据本发明一个实施例的用于分区和分配NFS资源的方法的流程图。

图9示出了根据本发明一个实施例的用于实现NFS资源的存储层优先级的方法的流程图。

具体实施方式

以下描述是为了说明本发明的一般原理,并不意味着限制本文要求保护的发明构思。此外,本文描述的特定特征可以在各种可能的组合和置换中的每一种中与其他描述的特征结合使用。

除非本文中另有具体定义,否则所有术语将被给予其最广泛的可能解释,包括说明书中暗示的含义以及本领域技术人员理解的和/或字典、论文等中定义的含义。

还必须注意,如说明书和所附权利要求书中所使用的,单数形式“一”、“一个”和“该”包括复数指代,除非另有说明。还应当理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合的存在或添加。

以下描述公开了在网络文件共享环境中管理服务质量的几个实施例。

在一个一般实施例中,一种计算机实现的方法包括:基于NFS平台内的多个出口(export),将网络文件系统(NFS)平台的资源分区成多个区域;在NFS平台内的一个出口处,接收来自第一应用的、利用NFS平台的资源;以及基于包括在请求中的信息,在多个区域之一内将资源的预定部分分配给第一应用。

在另一个一般实施例中,一种用于管理网络文件共享环境中的服务质量的计算机程序产品包括具有包含在其中的程序指令的计算机可读存储介质,其中该计算机可读存储介质本身不是暂时信号,并且其中该程序指令可由处理器执行,以使得该处理器执行方法,该方法包括基于NFS平台内的多个出口,由该处理器将网络文件系统(NFS)平台的资源分区成多个区域;由处理器在NFS平台内的一个出口处接收来自第一应用的、利用NFS平台的资源的请求;以及由处理器基于包括在请求中的信息,在多个区域之一内将资源的预定部分分配给第一应用。

在另一个一般实施例中,一种系统包括处理器;以及与处理器集成、可由处理器执行或与处理器集成并可由处理器执行的逻辑,其中该逻辑被配置为基于NFS平台内的多个出口,将网络文件系统(NFS)平台的资源分区成多个区域;在NFS平台内的一个出口处,接收来自第一应用的、利用NFS平台的资源的请求;以及基于包括在请求中的信息,在多个区域之一内将资源的预定部分分配给第一应用。

首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。

云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。

特征包括:

按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。

服务模型如下:

软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。

平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。

基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。

部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。

共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。

混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。

现在参考图1,描绘说明性云计算环境50。如图所示,云计算环境50包括一个或多个云计算节点10,云消费者使用的本地计算设备,诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N,可以与云计算节点10通信。节点10可以彼此通信。可以在一个或多个网络(诸如如上文所述的私有、社区、公共或混合云、或其组合)中对它们进行物理或虚拟分组(未示出)。这允许云计算环境50提供基础设施、平台和/或软件即服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图1中所示的计算设备54A-N的类型仅仅是说明性的,并且计算节点10和云计算环境50可以通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。

现在参考图2,示出了由云计算环境50(图1)提供的一组功能抽象层。应该预先理解,图2中所示的组件、层和功能仅是说明性的,并且本发明的实施例不限于此。如图所示,提供了以下层和相应的功能。

硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于RISC(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。

虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网;虚拟应用和操作系统74;和虚拟客户端75。

在一个示例中,管理层80可以提供下面描述的功能。资源供应81提供计算资源和用于在云计算环境中执行任务的其他资源的动态获取。计量和定价82在云计算环境内利用资源时提供成本跟踪,并对这些资源的消费进行计费或开票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,并保护数据和其他资源。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,从而满足所需的服务级别。服务水平协议(Service Level Agreement,SLA)计划和实现85为根据SLA预期未来需求的云计算资源提供了预先安排和采购。

工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:映射和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;交易处理95;和NFS/NFSaaS96。

现在参考图3,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。

云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。

计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

如图3所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

现在参考图4,示出了根据一个实施例的存储系统400。注意,根据各种实施例,图4所示的一些元件可以实现为硬件和/或软件。存储系统400可以包括存储系统管理器412,用于与至少一个较高存储层402和至少一个较低存储层406上的多个介质通信。(多个)较高存储层402优选地可以包括一个或多个随机存取和/或直接存取介质404,诸如硬盘驱动器(HDD)中的硬盘、非易失性存储器(NVM)、固态驱动器(SSD)中的固态存储器、闪存、SSD阵列、闪存阵列等、和/或本文提到的或本领域已知的其他技术。(多个)较低存储层406可以优选地包括一个或多个较低性能的存储介质408,包括顺序存取介质,诸如磁带驱动器中的磁带和/或光学介质、较慢存取的HDD、较慢存取的SSD等、和/或本文提到的或本领域已知的其他技术。一个或多个附加存储层416可以包括系统400的设计者所期望的存储存储器介质的任何组合。此外,任何较高存储层402和/或较低存储层406可以包括存储设备和/或存储介质的某种组合。

存储系统管理器412可以通过网络410(诸如图4所示的存储区域网络(storagearea network,SAN))或一些其他合适的网络类型与较高存储层402和较低存储层406上的存储介质404、408通信。存储系统管理器412还可以通过主机接口414与一个或多个主机系统(未示出)通信,主机接口414可以是或不是存储系统管理器412的一部分。存储系统管理器412和/或存储系统400的任何其他组件可以用硬件和/或软件实现,并且可以利用处理器(未示出)来执行本领域已知类型的命令,诸如中央处理器(CPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。当然,可以使用存储系统的任何布置,这对于本领域技术人员在阅读本说明书后将显而易见。

在更多实施例中,存储系统400可以包括任意数量的数据存储层,并且可以在每个存储层内包括相同或不同的存储存储器介质。例如,每个数据存储层可以包括相同类型的存储存储器介质,诸如HDD、SSD、顺序访问介质(磁带驱动器中的磁带,光盘驱动器中的光盘等)、直接访问介质(CD-ROM、DVD-ROM等)或介质存储类型的任意组合。在一个这样的配置中,较高存储层402可以包括用于在较高性能存储环境中存储数据的大部分SSD存储介质,而包括较低存储层406和附加存储层416的剩余存储层可以包括SSD、HDD、磁带驱动器等的任意组合,用于在较低性能存储环境中存储数据。以这种方式,更频繁访问的数据、具有较高优先级的数据、需要较快访问的数据等可以被存储到较高存储层402,而不具有这些属性之一的数据可以被存储到包括较低存储层406的附加存储层416。当然,根据本文给出的实施例,本领域技术人员在阅读本说明书后,可以设计存储介质类型的许多其他组合来实现不同的存储方案。

根据一些实施例,存储系统(诸如400)可以包括被配置为接收打开数据集的请求的逻辑、被配置为确定所请求的数据集是否以多个相关联部分存储到分层数据存储系统400的较低存储层406的逻辑、被配置为将所请求的数据集的每个相关联部分移动到分层数据存储系统400的较高存储层402的逻辑、以及被配置为从相关联部分在分层数据存储系统400的较高存储层402上组装所请求的数据集的逻辑。

当然,根据各种实施例,该逻辑可以被实现为任何设备和/或系统上的方法或者计算机程序产品。

现在参考图5,示出了根据一个实施例的方法500的流程图。在各种实施例中,方法500可以根据本发明在图1-4和图6中描绘的任何环境中执行。当然,方法500中可以包括比图5中具体描述的更多或更少的操作,如本领域技术人员在阅读本说明书后将会理解的。

方法500的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法500可以部分或全部由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。处理器,例如以硬件和/或软件实现的(多个)处理电路、(多个)芯片和/或(多个)模块,并且优选地具有至少一个硬件组件,可以用在任何设备中以执行方法500的一个或多个步骤。示例性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其他合适的计算设备。

如图5所示,方法500可以从操作502开始,其中基于NFS平台内的多个出口,网络文件系统(NFS)平台的资源被分区成多个区域。在一个实施例中,资源可以包括NFS平台内可用的存储空间(例如,用于存储NFS平台内可用的数据的空间等)。在另一个实施例中,资源可以包括NFS平台内可用的处理资源(例如,CPU处理器周期、处理器存储器等)。

另外,在一个实施例中,资源可以包括NFS平台内可用的一个或多个网络缓冲器。在另一个实施例中,资源可以包括NFS平台内可用的多个远程过程调用。在又一实施例中,资源可以包括NFS平台内可用的一个或多个数据高速缓存。在又一实施例中,资源可以包括NFS平台内可用的一个或多个元数据高速缓存。

此外,在一个实施例中,资源可以包括NFS平台内可用的一个或多个远程过程调用(remote procedure call,RPC)。在另一个实施例中,资源可以包括NFS平台内可用的一个或多个调度器(scheduler)优先级。在又一实施例中,资源可以包括NFS平台内可用的一个或多个存储控制器优先级。

此外,在一个实施例中,NFS平台可以包含集群文件系统。例如,NFS平台可以包含群集的多个节点,其中群集的多个节点中的每一个可以包括系统,该系统包括预定量的资源,诸如物理存储容量、处理资源、数据高速缓存等。在另一示例中,每个节点可以包括提供物理存储容量的一个或多个存储驱动器(例如,固态驱动器(SSD)、硬盘驱动器、磁带驱动器、闪存等)、提供处理资源的一个或多个硬件处理器等。

此外,在一个实施例中,NFS平台可以提供一个或多个客户端和由多个节点提供的物理存储容量之间的抽象级别。在另一个实施例中,NFS平台可以向节点提供抽象文件系统,其中文件系统利用由多个节点提供的物理存储容量。

此外,在一个实施例中,多个区域中的每一个可以被分配给NFS平台内的单个出口。在另一个实施例中,多个区域中的每一个可以被分配NFS平台的预定百分比的资源。例如,第一区域可以被分配NFS平台内可用存储空间的百分之三十,第二区域可以被分配NFS平台内可用存储空间的百分之七十,等等。

此外,在一个实施例中,资源的分配可以基于能够访问多个出口中的每一个的多个客户端。例如,可以将可由比第二出口更大数量的客户端访问的第一出口分配给具有比分配给第二出口的第二区域更多的NFS平台资源的第一区域。

此外,在一个实施例中,NFS平台内的每个出口可以包括目录或文件夹,其充当用于访问NFS平台的资源的接口。

这样,NFS平台的每个出口可以与NFS平台的所有资源的预定部分相关联。这可以有效地分配NFS平台内的所有可用资源,从而实现一致的资源分配。

此外,方法500可以继续操作504,其中在NFS平台内的出口之一处从第一应用接收利用NFS平台的资源的请求。在一个实施例中,该请求可以包括远程过程调用(RPC)。在另一个实施例中,可以从运行在与系统分离的客户端上的应用接收请求。例如,客户端可以包括诸如移动设备、桌面计算设备等计算设备。

另外,在一个实施例中,该请求可以与多个区域中的一个相关联。例如,该请求可以与分配给接收到该请求的出口的区域相关联。在另一个实施例中,该应用可以包括在与NFS平台通信的客户端上运行的程序。例如,在应用运行期间,应用可以请求利用NFS平台的资源。

此外,方法500可以继续操作506,其中基于包括在请求内的信息,在多个区域之一内将资源的预定部分分配给第一应用。在一个实施例中,请求内包括的信息可以包括第一应用的标识符(例如,应用ID等)。在另一个实施例中,请求内包括的信息可以包括第一应用的优先级。在又一个实施例中,请求内包括的信息可以包括所请求的存储层。在另一个实施例中,响应于确定所请求的存储层可用,可以利用所请求的存储层来实现该请求。

此外,在一个实施例中,资源的预定部分可以仅从分配给接收到请求的出口的区域中分配。在另一个实施例中,包括在请求内的信息可以与包括在对在相同出口接收的对资源的另一个请求内的信息进行比较。例如,对资源的另一个请求可以在相同出口处从第二个分离的应用接收。在另一示例中,在从第一应用接收到请求之前或之后,可以在相同的出口处从第二应用接收对资源的另一请求。

此外,在一个实施例中,可以基于来自第一应用的请求中包括的信息来确定第一应用的第一优先级。在另一个实施例中,可以基于来自第二应用的请求中包括的信息来确定第二应用的第二优先级。在又一实施例中,第一优先级可以与第二优先级相比较。

此外,在一个实施例中,当第一优先级大于第二优先级时,分配给第一应用的资源的预定部分可以大于分配给第二应用的资源的预定部分。在另一个实施例中,当第一优先级小于第二优先级时,分配给第一应用的资源的预定部分可以小于分配给第二应用的资源的预定部分。

以这种方式,基于应用的优先级,NFS平台的资源可以被动态地分配给客户端应用。这可以确保重要的高优先级应用优先访问NFS平台资源,这可以确保这种应用的性能。与低优先级应用相比,通过确保高优先级应用能够以较高优先级访问NFS平台资源,整体系统性能也可以得到改善。

在一个实施例中,提供了一种框架,该框架通过有效地分区用户空间NFS服务器资源以及基于分配给应用的权重将数据适当地放置在相应的存储池中,来帮助实现NFSaaS(网络文件共享即服务)托管平台中的服务质量(QoS)。

网络文件系统(NFS)源自分布式文件系统机制。它们在数据和资源的集中管理至关重要的计算环境中实施。网络文件系统工作在所有基于IP的网络上。它们使用TCP和UDP进行数据访问和传递,这取决于使用的版本。

传统上,NFS被实现为本地客户机/服务器计算模型,其中NFS服务器(例如,单个物理机器或多个机器的集群)管理客户机的认证、授权和管理(可以是其上安装了应用的NFS服务器以外的不同机器),以及特定文件系统内共享的所有数据。一旦获得授权,客户端可以通过其本地系统以类似于内部磁盘驱动器的方式查看和访问数据。

最近观察到,云供应商正在提供NFS即服务(NFSaaS),其中NFS服务器托管在由云提供商管理的数据中心,而NFS客户端可以驻留在云数据中心或本地。

用户空间NFS服务器可以提供优于内核NFS的优势。例如,在用户空间中工作可以分配非常大的内存,并且访问诸如用户空间中的安全和认证等服务也很容易。

目前,没有NFS版本被构建为具有服务质量(QoS)。因此,从NFS服务器的角度来看,这种NFS系统不能完全提供对服务质量的控制,而这在实现NFSaaS平台的过程中是至关重要的。

在一个实施例中,可以通过有效地分区用户空间NFS服务器资源(诸如高速缓存、RPC分配器、计算、存储、网络、RPC、调度器优先级等)以及基于分配给利用服务的应用的权重将数据适当地放置在相应的存储池中,来提供有助于在NFSaaS托管平台中提供QoS基础设施的框架。

该框架为传统的NFSaaS托管平台提供了以下功能和灵活性:

·该框架支持在NFS RPC握手(handshake)期间收集应用ID。NFS客户端将此应用ID传递给NFSaaS平台。

·该框架支持在NFS RPC握手中收集应用优先级/权重值。应用优先级由云用户决定。

·该框架支持在NFS RPC握手调用中收集应用所需的优选存储层。

·该框架支持在每个出口级的NFSaaS上分区资源(通过将每个出口级的相关联资源映射到区域)。例如,作为分布式文件系统的NFSaaS托管平台可以管理每个出口级创建的节点分区集群。

·基于所接收到的应用ID和优先级,NFSaaS托管平台可以对用户空间NFS服务器/区域资源进行分区,诸如高速缓存(数据和元数据)、RPC(在复合请求内每个应用要处理/响应的来自客户端的RPC的数量)、计算资源(CPU和内存)、存储资源(块级别、存储控制器资源)和调度器优先级。与其他非优先级应用相比,高优先级应用获得的资源份额相对较高。如果使用已经被其他应用使用的区域启动新的应用,则所提出的算法触发资源再平衡操作,该操作涉及调整分配给其他应用的资源,并基于新的权重执行新的分区。

·基于所接收的优选存储层,NFS服务器与文件系统池功能(诸如与目标出口相关联的磁盘类型)交互,并且基于所请求的磁盘层的匹配,NFS服务器将特定应用的数据写入相应的存储层。

表1示出了根据一个示例性实施例的包括用于传递附加请求信息的新字段的示例性RPC消息结构。

表2示出了根据一个示例性实施例的被分区和分配的示例性NFS服务器资源。

图6示出了根据一个示例性实施例的提供端到端服务质量(QoS)的示例性NFSaaS托管环境600。如图所示,托管环境600包括NFSaaS托管平台602。网络SaaS托管平台602包括管理多个节点606A-N的集群文件系统604

另外,这些节点606A-N中的每一个都包括提供给集群文件系统604的硬件资源608A-N。这些硬件资源可以包括一个或多个存储驱动器、一个或多个处理器等。此外,NFSaaS托管平台602包括第一出口610和第二出口612。第一出口610与第一客户端614通信,并且第二出口与第一客户端614和第二客户端616通信。在一个实施例中,出口610和612可以由集群文件系统604实现,以向正在访问这些资源的客户端614和616暴露集群文件系统604的资源。在另一个实施例中,第一客户端614和第二客户端616都可以包括NFS客户端。

在一个实施例中,可以将NFSaaS托管平台602内的所有可用资源分组在一起。这些资源可以包括所有硬件资源608A-N、NFSaaS托管平台602内的网络缓冲区、NFSaaS托管平台602内的存储控制器资源、NFSaaS托管平台602内的调度程序优先级、NFSaaS托管平台602内允许的远程过程调用、NFSaaS托管平台602中的数据和元数据高速缓存等。

此外,在一个实施例中,该分组可以被分成第一分区和第二分区。第一分区可被分配给第一出口610,并且第二分区可被分配给第二出口612。在另一实施例中,响应于确定第二出口612与比第一出口610更多的客户端通信,第二分区可以具有比第一分区更多的资源量。

此外,在一个实施例中,第一出口610经由第一客户端614从第一应用618和第二应用620接收远程过程调用(RPC)。此外,第二出口612经由第二客户端616从第三应用622接收RPC。在一个实施例中,来自第一应用618的第一RPC可以包括指示应用ID为1、优先级为100、以及串行ATA(serial ATA,SATA)请求的存储层的信息。此外,来自第二应用620的第二RPC可以包括指示应用ID为2、优先级为101和串行ATA(SATA)请求的存储层的信息。此外,来自第三应用622的第三RPC可以包括指示应用ID为3、优先级为1以及固态驱动器(SSD)请求的存储层的信息。

此外,在一个实施例中,NFSaaS托管平台602可以比较包含在RPC调用内的信息,并且可以基于该比较将部分分区分配给每个应用。例如,NFSaaS托管平台602可以注意到,第三应用622具有第一最高优先级,第一应用618具有第二最高优先级,第二应用620具有第三最高优先级。由于第三应用622具有第一最高优先级,并且仅经由第二客户端616与第二出口612通信,所以分配给第二出口的第二分区的大部分(例如,90%)可以由NFSaaS托管平台602提供给第三应用622。

此外,由于第一应用618具有第二高优先级,并且经由第一客户端614与第一出口610和第二出口612通信,所以分配给第一出口的第一分区的大部分(例如,70%)和分配给第二出口的第二分区的剩余部分(例如,10%)可以由NFSaaS托管平台602提供给第一应用618。

此外,由于第二应用620具有第三高优先级,并且经由第一客户端614与第一出口610和第二出口612都通信,所以分配给第一出口的第一分区的剩余部分(例如,30%)可以由NFSaaS托管平台602提供给第二应用620。

此外,应用618-622可以在运行应用618-622期间利用它们分配的分区资源。例如,应用618-622可以在应用618-622运行期间利用其分配的存储和处理资源来执行一个或多个操作(例如,数据处理和存储等)。

以这种方式,可以基于为请求这种资源的应用618-622导出的优先级来动态分配由NFSaaS托管平台602管理的资源。这可以启用NFSaaS托管平台602的内部QoS实现。

现在参考图7,示出了根据一个实施例的用于在客户端上实现服务质量的方法700的流程图。在各种实施例中,方法700可以根据本发明在图1-4和图6中描绘的任何环境中执行。当然,方法700中可以包括比图7中具体描述的更多或更少的操作,如本领域技术人员在阅读本说明书后将会理解的。

方法700的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法700可以部分或全部由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。处理器,例如以硬件和/或软件实现的(多个)处理电路、(多个)芯片和/或(多个)模块,并且优选地具有至少一个硬件组件,可以用在任何设备中以执行方法700的一个或多个步骤。示例性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其他合适的计算设备。

如图7所示,方法700可以从操作702开始,其中客户端发起与NFS服务器的NFS连接。在一个实施例中,NFS服务器可以包括NFS主机平台。在另一个实施例中,客户端可以用NFS服务器的预定出口启动NFS连接。在又一个实施例中,客户端可以代表在客户端上运行的应用启动NFS连接。

此外,方法700可以继续操作704,其中客户端将应用ID、优先级值和优选存储层作为RPC调用内的参数传递给NFS服务器。在一个实施例中,应用ID、优先级值和优选存储层可以与在客户端上运行的预定应用相关联。

此外,方法700可以继续操作706,其中客户端接收RPC调用的结果。在一个实施例中,结果可以包括基于RPC调用和经由RPC调用发送到NFS服务器的参数的服务器的一个或多个资源的使用。

现在参考图8,示出了根据一个实施例的用于分区和分配NFS资源的方法800的流程图。在各种实施例中,方法800可以根据本发明在图1-4和6中描绘的任何环境等中执行。当然,方法800中可以包括比图8中具体描述的更多或更少的操作,如本领域技术人员在阅读本说明书后将会理解的。

方法800的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法800可以部分或全部由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。处理器,例如以硬件和/或软件实现的(多个)处理电路、(多个)芯片和/或(多个)模块,并且优选地具有至少一个硬件组件,可以用在任何设备中以执行方法800的一个或多个步骤。示例性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其他合适的计算设备。

如图8所示,方法800可以从操作802开始,其中由分布式文件系统管理的NFS服务器资源基于多个出口被分区。此外,方法800可以继续操作804,其中出口从传入的RPC中读取应用的应用ID、优先级值和优选存储层。

此外,方法800可以继续操作806,其中基于应用的应用ID、优先级值和优选存储层,将一部分分区的NFS服务器资源分配给应用。这些NFS服务器资源可以包括计算资源(例如,CPU、存储器)、网络缓冲器、存储控制器资源、调度器优先级、多个RPC、数据高速缓存、元数据高速缓存等。

现在参考图9,示出了根据一个实施例的用于实现NFS资源的存储层优先级的方法900的流程图。在各种实施例中,方法900可以根据本发明在图1-4和图6中描绘的任何环境中执行。当然,方法900中可以包括比图9中具体描述的更多或更少的操作,如本领域技术人员在阅读本说明书后将会理解的。

方法900的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法900可以部分或全部由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。处理器,例如以硬件和/或软件实现的(多个)处理电路、(多个)芯片和/或(多个)模块,并且优选地具有至少一个硬件组件,可以用在任何设备中以执行方法900的一个或多个步骤。示例性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其他合适的计算设备。

如图9所示,方法900可以从操作902开始,其中出口从传入的RPC读取应用的应用ID、优先级值和优选存储层。另外,方法900可以继续操作904,其中在NFS服务器内标识对应于优选存储层的存储层。

此外,方法900可以继续进行操作906,其中包括在RPC内的数据被写入从所标识的存储层导出的块地址(如果可用的话)。例如,如果存储空间被确定为在所标识的存储层中可用,则这种存储空间可用于实现RPC。

通过这种方式,应用可以决定使用哪些存储层来实现应用数据在NFS服务器内的存储。

在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以,作为一个步骤完成,并行地执行,基本并行地执行,以部分或全部暂时重叠的方式执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

此外,根据各种实施例的系统可以包括处理器和与该处理器集成和/或可由该处理器执行的逻辑,该逻辑被配置为执行本文所述的一个或多个过程步骤。与该处理器集成意味着处理器具有作为硬件逻辑嵌入其中的逻辑,诸如专用集成电路(ASIC)、FPGA等。可由该处理器执行意味着逻辑是硬件逻辑;软件逻辑,诸如固件、操作系统的一部分、应用程序的一部分;等等,或硬件和软件逻辑的某些组合,其可由处理器访问并被配置为使得处理器在由处理器执行时执行某些功能。如本领域已知的,软件逻辑可以存储在任何存储器类型的本地和/或远程存储器上。可以使用本领域已知的任何处理器,诸如软件处理器模块和/或硬件处理器,诸如ASIC、FPGA、中央处理器(CPU)、集成电路(IC)、图形处理器(GPU)等。

显然,前述系统和/或方法的各种特征可以以任何方式组合,从上述描述中产生多个组合。

还应当理解,本发明的实施例可以以代表客户部署的服务的形式提供,以按需提供服务。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号