首页> 中国专利> 通过使用工作负载特性在存储层之间传输数据来提高数据性能

通过使用工作负载特性在存储层之间传输数据来提高数据性能

摘要

根据一个实施例,一种计算机实现的方法包括:接收对应于在存储装置中的数据的放置的一个或多个建议,其中所述一个或多个建议基于数据工作负载特性。一个或多个建议用于识别存储在实际存储装置中的实际数据的与一个或多个建议对应的部分。对于存储在第一层级中的实际数据的所识别部分中的每个部分,一个或多个建议还用于确定是否将实际数据的给定所识别部分传输到第二层级。此外,响应于确定将所述实际数据的所述所识别的部分中的至少一者传输到所述第二层,发送一或多个指令以将所述实际数据的所述所识别的部分中的所述至少一者从所述第一层传输到所述第二层。

著录项

  • 公开/公告号CN113272781A

    专利类型发明专利

  • 公开/公告日2021-08-17

    原文格式PDF

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

    申请/专利号CN201980088214.X

  • 申请日2019-12-16

  • 分类号G06F7/00(20060101);

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

  • 代理人邸万奎

  • 地址 美国纽约阿芒克

  • 入库时间 2023-06-19 12:14:58

说明书

背景技术

本发明涉及数据存储系统,并且更具体地,本发明涉及使用数据工作负载特性来改善信息生命周期管理。

信息通常在其被维持在存储装置中的时间期间经历多个操作。例如,在被存储(例如,写入)存储中之后,数据的部分经历多个读取操作和/或修改操作。通常还随着时间推移将数据的不同部分移动(例如,重写)到存储中的不同位置。随着存储容量和数据吞吐量随时间增加,能够以有效方式执行这些访问操作的存储系统的期望性也随之增加。

作为响应,许多存储系统实现信息生命周期管理(ILM)。ILM是用于管理信息系统中所包括的数据和/或元数据从创建点(例如,初始存储)到删除点的流动的综合方法。然而,传统的ILM方案已经不能有效地管理集群的文件系统中的信息的分布。这对于其中数据跨存储的不同部分被条带化(strip)的集群的文件系统而言尤其如此。

发明内容

根据一个实施例,一种计算机实现的方法包括:接收对应于在存储装置中的数据的放置的一个或多个建议,其中所述一个或多个建议基于数据工作负载特性。一个或多个建议用于识别存储在实际存储装置中的实际数据的与一个或多个建议对应的部分。所述实际存储装置包括:第一层,其具有两个或更多个共享节点;以及第二层,其具有至少一个无共享节点。对于存储在第一层中的实际数据的所识别部分中的每个部分,一个或多个建议还用于确定是否将实际数据的给定所识别部分传输到第二层级。此外,响应于确定将所述实际数据的所述所识别的部分中的至少一者传输到所述第二层,发送一或多个指令以将所述实际数据的所述所识别的部分中的所述至少一者从所述第一层传输到所述第二层。

根据另一实施例,一种计算机程序产品包括具有体现于其中的程序指令的计算机可读存储介质。程序指令可由处理器读取和/或执行以使处理器:执行上述方法。

根据另一个实施例的系统包括:处理器;以及与所述处理器集成、可由所述处理器执行、或与所述处理器集成并可由所述处理器执行的逻辑。而且,该逻辑被配置成:执行上述方法。

根据又一实施例,一种计算机实现的方法包括:分析存储在集群的文件系统中的数据的工作负载特性。在包括具有两个或更多个共享节点的第一层和具有至少一个无共享节点的第二层的存储装置中实现集群的文件系统。此外,第一层和第二层包括在同一命名空间中。所分析的工作负载特性用于生成对应于在存储装置中的数据的放置的一个或多个建议。此外,一个或多个建议用于在第一和第二层之间传输存储装置中的至少一些数据。

根据另一实施例,一种系统包括:存储装置,其包括具有两个或更多个共享节点的第一层和具有至少一个无共享节点的第二层。此外,第一层和第二层包括在同一命名空间中。所述系统还包括处理器,以及与所述处理器集成、可由所述处理器执行、或与所述处理器集成且可由所述处理器执行的逻辑。所述逻辑被配置为:由所述处理器分析存储在所述存储装置中的数据的工作负载特性。由处理器进一步使用分析的工作负载特性来生成对应于在存储装置中的数据的放置的一个或多个建议。此外,处理器使用一个或多个建议来在第一层和第二层之间传输存储装置中的至少一些数据。

本发明的其他方面和实施例将从以下详细描述中变得清楚,这些详细描述在结合附图时通过举例示出了本发明的原理。

附图说明

图1示出根据一个实施例的网络架构。

图2示出了根据一个实施例的可以与图1的服务器和/或客户端相关联的代表性硬件环境。

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

图4是根据一个实施例的集群的文件系统的部分示意图。

图5A是根据一个实施例的方法的流程图。

图5B是根据一个实施例的方法的流程图。

图5C是根据一个实施例的方法的流程图。

具体实施方式

以下说明是为了示出本发明的一般原理的目的而做出的,并且不旨在限制在此要求保护的发明概念。进一步,本文中所描述的特定特征可与不同可能组合和排列中的每一者中的其他所描述的特征组合使用。

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

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

以下描述公开了用于实现能够在单个(相同)命名空间中支持条带化和非条带化存储配置两者的框架的系统、方法和计算机程序产品的若干优选实施例。此外,本文的一些实施例能够显著增强ILM方案,以基于数据工作负载特性以及从其中导出的建议和/或数据模型来在不同层之间适当地放置或迁移数据,不同层中的一些使用专用硬件来实现,例如,如下文将进一步详细描述的。

在一个一般实施例中,一种计算机实现的方法包括:接收对应于在存储装置中的数据的放置的一个或多个建议,其中一个或多个建议基于数据工作负载特性。一个或多个建议用于识别存储在实际存储装置中的实际数据的与一个或多个建议对应的部分。实际存储装置包括:第一层,其具有两个或更多个共享节点;以及第二层,其具有至少一个无共享节点。对于存储在第一层级中的实际数据的所识别部分中的每个部分,一个或多个建议还用于确定是否将实际数据的给定所识别部分传输到第二层级。此外,响应于确定将实际数据的所识别的部分中的至少一者传输到第二层,发送一或多个指令以将实际数据的所识别的部分中的至少一者从第一层传输到第二层。

在另一个一般实施例中,计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令。程序指令可由处理器读取和/或执行以使处理器:执行上述方法。

在另一个一般实施例中,一种系统包括:处理器;以及与处理器集成、可由处理器执行、或与处理器集成并可由处理器执行的逻辑。而且,该逻辑被配置成:执行上述方法。

在又一一般实施例中,一种计算机实现的方法包括:分析存储在集群的文件系统中的数据的工作负载特性。在包括具有两个或更多个共享节点的第一层和具有至少一个无共享节点的第二层的存储器中实现集群的文件系统。此外,第一层和第二层包括在同一命名空间中。所分析的工作负载特性用于生成对应于在存储装置中的数据的放置的一个或多个建议。此外,一个或多个建议用于在第一和第二层之间传输存储装置中的至少一些数据。

在另一一般实施例中,一种系统包括:存储装置,其包括具有两个或更多个共享节点的第一层和具有至少一个无共享节点的第二层。此外,第一层和第二层包括在同一命名空间中。系统还包含处理器,以及与处理器集成、可由处理器执行、或与处理器集成且可由处理器执行的逻辑。逻辑被配置为:由处理器分析存储在存储装置中的数据的工作负载特性。由处理器进一步使用分析的工作负载特性来生成对应于在存储装置中的数据的放置的一个或多个建议。此外,处理器使用一个或多个建议来在第一层和第二层之间传输存储装置中的至少一些数据。

图1示出根据一个实施例的架构100。如图1所示,提供了包括第一远程网络104和第二远程网络106的多个远程网络102。网关101可以耦合在远程网络102和邻近网络108之间。在本架构100的上下文中,网络104、106可各自采取任何形式,包括但不限于局域网(LAN)、广域网(WAN)(诸如互联网)、公共交换电话网(PSTN)、内部电话网等。

在使用中,网关101充当从远程网络102到邻近网络108的入口点。照此,网关101可以起路由器和交换机的作用,路由器能够指引到达网关101的给定数据分组,交换机为给定分组提供进出网关101的实际路径。

进一步包括至少一个数据服务器114,该至少一个数据服务器耦合至邻近网络108并且可经由网关101从远程网络102访问。应当注意,(一个或多个)数据服务器114可以包括任何类型的计算设备/群件。耦合到每个数据服务器114的是多个用户设备116。用户设备116还可以通过网络104、106、108之一直接连接。这样的用户设备116可以包括台式计算机、膝上型计算机、手持式计算机、打印机或任何其他类型的逻辑。应当注意,在一个实施例中,用户设备111还可以直接耦合到任何网络。

外围设备120或一系列外围设备120(例如,传真机、打印机、联网和/或本地存储单元或系统等)可以耦合到网络104、106、108中的一个或多个。应注意,数据库和/或额外组件可与耦合到网络104、106、108的任何类型的网络元件一起使用或集成到耦合到网络104、106、108的任何类型的网络元件中。在本说明书的上下文中,网络元件可以指网络的任何组件。

根据一些方法,在此描述的方法和系统可以用虚拟系统和/或模仿一个或多个其他系统的系统来实现和/或在其上实现,诸如模拟IBM z/OS环境的UNIX系统、虚拟地托管MICROSOFT WINDOWS环境的UNIX系统,模拟IBM z/OS环境的MICROSOFT WINDOWS系统等。在一些实施例中,可以通过使用VMWARE软件来增强这种虚拟化和/或仿真。

在更多方法中,一个或多个网络104、106、108可以表示通常被称为“云”的系统集群。在云计算中,诸如处理能力、外围设备、软件、数据、服务器等的共享资源以按需关系被提供给云中的任何系统,从而允许服务跨许多计算系统的访问和分发。云计算通常涉及在云中操作的系统之间的互联网连接,但是也可以使用连接系统的其他技术。

图2示出了根据一个实施例的与图1的用户设备116和/或服务器114相关联的代表性硬件环境。该图示出了工作站的典型硬件配置,该工作站具有诸如微处理器的中央处理单元210和经由系统总线212互连的多个其他单元。

图2所示的工作站包括随机存取存储器(RAM)214、只读存储器(ROM)216,用于将诸如磁盘存储单元220之类的外围设备连接到总线212的输入/输出(I/O)适配器218,用于将键盘224、鼠标226、扬声器228、麦克风232和/或诸如触摸屏和数码相机(未示出)之类的其他用户接口设备连接到总线212的用户接口适配器222,用于将工作站连接到通信网络235(例如,数据处理网络)的通信适配器234和用于将总线212连接到显示设备238的显示适配器236。

工作站可具有驻留在其上的操作系统,诸如

现在参见图3,示出了根据一个实施例的存储系统300。应注意,根据不同实施例,图3中所示的一些元件可实施为硬件和/或软件。存储系统300可以包括用于与至少一个较高存储层302和至少一个较低存储层306上的多个介质和/或驱动器通信的存储系统管理器312。较高存储层302优选地可包括一个或多个随机存取和/或直接存取介质304,诸如硬盘驱动器(HDD)中的硬盘、非易失性存储器(NVM)、固态驱动器(SSD)中的固态存储、闪存存储、SSD阵列、闪存存储阵列等,和/或本文指出的或本领域已知的其他介质。较低存储层306可优选地包括一个或多个较低性能存储介质308,包括顺序访问介质,诸如磁带驱动器和/或光学介质中的磁带、较慢访问HDD、较慢访问SSD等,和/或本文指出的或本领域已知的其他介质。一个或多个附加存储层316可包括系统300的设计者所期望的存储介质的任何组合。而且,较高存储层302和/或较低存储层306中的任一者可包含存储装置和/或存储媒体的某一组合。

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

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

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

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

如前所述,许多存储系统实现ILM以便管理信息系统中所包括的从创建点(例如,初始存储)到删除点的数据和/或元数据的流。然而,传统的ILM方案已经不能有效地管理集群的文件系统中的信息的分布。这对于其中数据跨存储的不同部分被条带化的集群的文件系统而言尤其如此。例如,虽然跨存储的不同磁盘条带化数据增加了可实现的吞吐量,但是在涉及从其相应磁盘回想每个片段的情况下,这也增加了等待时间,例如,如下面将进一步详细描述的。

参见图4,示出了根据一个实施例的集群的文件系统400的示意图。作为选项,本集群的文件系统400可以结合来自本文列出的任何其他实施例的特征来实现,诸如参考其他图(诸如图3)描述的那些。然而,这样的集群的文件系统400和本文中呈现的其他文件系统可以用于不同应用和/或置换中,其可以或可以不在本文中列出的说明性实施例中具体描述。进一步,本文呈现的集群的文件系统400可以在任何期望的环境中使用。因此,图4(和其他图)可以被认为包括任何可能的置换。

如图所示,集群的文件系统400包括第一层402和第二层404。在优选方法中,第一和第二层402、404被包括在集群的文件系统400的相同命名空间中。因此,第一和第二层402、404可以包括在被创建用于保持唯一识别符或符号的逻辑分组的相同抽象容器或环境中,例如,如本领域技术人员在阅读本说明书之后将认识到的。此外,优选地与对应于第二层404的第二索引节点结构分开地维护对应于第一层402的第一索引节点结构。然而,在一些方法中,第一和第二层402、404可以各自被分配组合索引节点结构的唯一部分。

现在具体查看第一层402,共享节点406、408被耦合到可以是任何期望类型的多个不同的存储组件410中的每一个。例如,在不同方法中,存储组件410中的任何一个或多个可包括HDD、SSD、磁带库等和/或其组合。由此,在一些方法中,共享节点406、408中的一个或多个实际上可以是共享盘节点。共享节点406、408中的每一个还包括控制器412和存储414的一部分,例如,其可以用作高速缓存。还应当注意,控制器412中的每一个可以包括或实际上是任何期望类型的处理部件,例如,诸如处理器、服务器、CPU等,这取决于所期望的方法。

第二层404还包括多个不同的存储组件416,每个存储组件耦合到相应的无共享节点418。无共享节点418中的每一个无共享节点具有包括分布式计算架构的无共享架构,在分布式计算架构中,节点418中的每一个节点相对于彼此是独立的且自足的。在一些说明性方法中,跨第二层404不存在单个争用点。因此,无共享节点418不在它们之间分配存储和/或计算资源,例如,如本领域技术人员在阅读本说明书之后将认识到的。

遵循第一层402能够使用共享节点406、408跨存储组件410条带化数据,而第二层404不能够使用无共享节点418跨存储组件416条带化数据。同样,共享节点406、408中的每一个耦合到不同存储组件410中的每一个,这允许由共享节点406、408中的任一个将数据写入到存储组件410中的任一个和/或从存储组件410中的任一个读取数据。如本领域技术人员将意识到的,数据条带化是分段逻辑顺序数据(例如,诸如文件)以使得连续的分段被存储在不同的物理存储设备上的技术。当处理设备比单个存储设备能够提供数据更快地请求数据时,条带化是有用的。这是因为跨可同时访问的多个设备扩展分段增加了总的可实现的数据吞吐量。数据条带化也是有用的过程,以便平衡跨存储组件阵列的I/O负载。此外,一些数据条带化过程涉及从数据序列的开始以循环方式在存储装置上交错数据的顺序段。

相反,每个无共享节点418具有无共享架构,并且由此不能实现数据条带化。相反,每个无共享节点418实现数据非条带化模式,例如,诸如用于无共享集群(GPFS-SNC)模式的通用并行文件系统。根据示例性方法(其决不旨在限制本发明),GPFS-SNC模式涉及在给定集群上操作的可扩展文件系统。还应注意,第一层402和第二层404中的每一层中所包括的组件的数量决不旨在进行限制。相反,任何期望数量的节点、存储组件等可取决于所期望的方法来实现。

虽然鉴于条带化模式所提供的并行性,条带化模式在一些情形中是合乎需要的,但非条带化模式也提供益处。例如,非条带化架构能够实现允许在数据驻留的节点上调度计算作业的局部感知。还实现允许大块大小和小块大小共存于同一文件系统中的元块,由此满足不同类型的应用的请求。在一些方法中还实现了允许应用规定文件在不同节点上的布局以便使写入和读取带宽最大化的写入亲和性。更进一步,流水线复制可以用于增加数据复制的网络带宽的使用,而分布式恢复可以用于减少故障对正在进行的计算的影响。因此,期望能够有效地实现条带化模式以及非条带化模式的文件系统。

无共享节点418中的每个无共享节点包括控制器420、存储器422的一部分(例如,其在一些情况下可以用作高速缓存)以及专用硬件424。随着一般数据使用和存储容量继续增加,与执行数据访问操作相关联的任何等待时间针对系统整体被放大。这对于其中跨存储的不同部分条带化数据的先前集群的文件系统而言尤其如此。例如,虽然跨不同存储盘条带化数据可增加可实现吞吐量,但在涉及从其相应存储位置再调用每个片段的情形中,这也增加了等待时间。

为了抵消此延迟,本文中所包括的实施例中的一些实施例实现专用硬件424。专用硬件424优选地能够增加第二层404中的无共享节点418能够执行数据操作的速度。换言之,专用硬件424有效地增加了在无共享节点418中的每个节点以及与其耦合的相应存储部件416之间执行数据传输的速度。这允许更加快速地从存储组件416访问数据,从而显著地减少与执行读取操作、写入操作、重写操作等相关联的等待时间。

可用于形成专用硬件424的组件的说明性列表包括但不限于图形处理单元(GPU)、SSD高速缓存、ASIC、快速非易失性存储器(NVMe)等和/或其组合。根据绝不旨在限制本发明的示例,例如,如下面将进一步详细描述的,包括GPU的专用硬件424可以用于帮助开发机器学习模型。此外,每个无共享节点418可以包括相同、相似或不同的专用硬件424组件,这取决于所期望的方法。例如,在一些方法中,无共享节点418中的每个无共享节点包括SSD高速缓存专用硬件424,而在其他方法中,无共享节点418中的一个无共享节点包括SSD高速缓存专用硬件424,并且无共享节点418中的另一个无共享节点包括GPU专用硬件424。

在一些方法中,在无共享节点418中的每一个节点之间延伸的通信路径426和与其耦合的相应存储部件416还能够加速数据传输速度。根据绝不旨在限制本发明的示例,高速外围组件互连高速(PCIe)总线充当将无共享节点418与相应存储部件416耦合的通信路径426。此外,专用硬件424可以结合PCIe总线工作以更进一步加速数据的传输。

仍然参考图4,第一层402和第二层404都连接到网络428。第一层402和/或第二层404可以使用无线连接(例如,WiFi、蓝牙、蜂窝网络等)耦合到网络428;有线连接(例如,电缆、光纤链路、电线等)或在阅读本说明书之后将对本领域的技术人员显而易见的任何其他类型的连接。此外,网络可以是任何类型的,例如取决于所期望的方法。例如,在一些方法中,网络428是WAN,例如互联网。然而,网络428可以实现的其他网络类型的说明性列表包括但不限于LAN、PSTN、SAN、内部电话网络等。因此,例如,尽管位于不同的地理位置,第一层402和第二层404能够彼此通信,而不管它们之间存在的分离量。

中央控制器430和用户432(例如,管理员)也耦接至网络428。在一些方法中,中央控制器430用于管理第一层402和第二层404之间的通信。中央控制器430还可以管理用户432与集群的文件系统400之间的通信。根据一些方法,中央控制器430从用户432接收数据、操作请求、命令、格式化指令等,并且将其适当部分引导到第一层402和/或第二层404。

再次,随着存储容量和数据吞吐量随时间增加,能够以高效的方式执行数据访问操作的存储系统的期望性也随之增加。本文所包括的实施例中的不同实施例能够通过实现允许机器学习和/或深度学习算法以有效的方式被应用的存储架构来实现该期望的改进。此外,可以智能地利用特定于文件系统中的不同层的性能特征,以进一步实时地改进性能。例如,现在参见图5A,示出了根据一个实施例的计算机实现的方法500的流程图。在不同实施例中,方法500可以在图1-4中描绘的任何环境中根据本发明执行,等等。当然,如本领域技术人员在阅读本说明书后将理解的,比图5A中具体描述的那些操作更多或更少的操作可被包括在方法500中。

方法500的每个步骤可以由操作环境的任何合适的部件执行。例如,方法500的流程图中所示的节点501、502、503中的每一个可对应于位于多层数据存储系统中的不同位置处的一个或多个处理器。此外,该一个或多个处理器中的每个处理器优选地被配置成彼此通信。

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

如上所述,图5A包括不同的节点501、502、503,其中的每个节点表示定位在多层数据存储系统中的不同位置处的一个或多个处理器、控制器、计算机等。例如,节点501可以包括电耦合到集群的文件系统的层的一个或多个处理器(例如,参见以上图4的412、420)。节点502可以包括一个或多个处理器,其用作集群的文件系统的中央控制器(例如,参见以上图4的430)。此外,节点503可包括位于用户位置处的一个或多个处理器,用户位置与节点501和503中的每一个处的一个或多个处理器通信(例如,经由网络连接)。因此,取决于方法,可以在节点501、502、503中的每一个之间发送命令、数据、请求等。此外,应注意,例如,如本领域技术人员在阅读本说明书之后将了解的,方法500中所包括的不同过程决不旨在进行限制。例如,在一些方法中,从节点502发送到节点503的数据可以以从节点503发送到节点502的请求为开始。

如图所示,方法500的操作504由节点501处的一个或多个处理器执行。再次应当注意,节点501处的一个或多个处理器电耦合到集群的文件系统的给定层。因此,在一些方法中,节点501处的一个或多个处理器包括共享节点406、408中的一个或多个控制器412。在其他方法中,节点501处的一个或多个处理器在无共享节点418中包括控制器420中的一个或多个。在其他方法中,节点501处的一个或多个处理器可以表示共享节点406、408中的一个或多个控制器412和无共享节点418中的一个或多个控制器420。换言之,由节点501处的一个或多个处理器执行的过程可由图4中的集群的文件系统的层402、404中的任何层中的节点406、408、418中的任何节点执行,这取决于给定方法。

仍参考方法500,操作504包括收集对应于存储在集群的文件系统中的数据的数据工作负载特性。如上所述,在包括具有两个或更多个共享节点的第一层和具有至少一个无共享节点的第二层的存储中实现集群的文件系统。在优选方法中,集群的文件系统的第一层和第二层也被包括在相同的命名空间中。

所收集的数据工作负载特性根据所期望的方法而变化。例如,可在操作504中收集的数据工作负载特性的说明性列表包括但不限于读取和/或写入模式、数据对应的文件类型、数据对应的文件的特定部分(例如,页眉、页脚、元数据部分等)等。根据一些方法,例如,如本领域技术人员在阅读本说明书之后将意识到的,可以使用监督者辅助学习模型来识别在操作504中收集的数据工作负载特性。

操作506进一步包括向节点502发送所收集的数据工作负载特性。取决于方法,数据工作负载特性可在它们被收集时、以预定大小的批次、周期性地等发送到节点502。

此外,操作508包括分析数据工作负载特性。分析数据工作负载特性的过程根据所接收的工作负载特性的数量和/或类型而变化。例如,在不同办法中,操作508可通过分析对应的数据类型、数据大小、不同的读/写模式、特定访问模式、所提议的框架估计、从其使用集群的文件系统的行业类型和/或工作负载等来执行。

然后,使用所分析的工作负载特性来生成与数据的特定部分在存储装置中的放置相对应的一个或多个建议和/或数据模型。例如,在一些方法中,建议(在此也被称为“提示”)和/或数据模型对应于特定的工作负载。所生成的建议甚至被用在一些方法中,以例如基于所识别的工作负载来识别与该情形相关的某些机器学习和/或深度学习算法。这些机器学习和/或深度学习算法可随着时间被开发以描述实际上被包括在存储装置中的数据和/或数据被存储的存储位置(例如,节点)。因此,机器学习和/或深度学习算法可以随着时间推移使用或至少基于数据工作负载特性来更新(例如,改进)。

在操作512中,这些生成的建议然后被发送到节点503以供批准。节点503处的用户(例如,管理员)具有接受所生成的建议中的一些、没有或全部的能力。节点503处的用户还能够根据该方法提出一个或多个补充建议和/或模型。因此,判定514包括确定所生成的建议是否被接受。响应于确定所生成的建议不被接受,例如,如上所述,方法500前进到操作516,由此用户提议一个或多个建议和/或数据模型。建议和/或数据模型可以基于在从其生成原始建议的集群的文件系统上运行的机器学习和/或深度学习算法。

然而,返回到判定514,方法500响应于确定所生成的建议被接受而跳到操作518。然而,应当注意,可以针对其中接受所生成的建议的一些方法来执行操作516。例如,用户可以提供一个或多个建议和/或数据模型以补充所生成的建议。

如图所示,操作518包括向节点502发送回复,该回复指示所生成的建议中的任何一个是否已经被接受。该回复还可以包括如上所述的一个或多个建议和/或数据模型。响应于从节点503接收到回复,执行操作520。在那里,操作520包括使用一个或多个批准的建议和/或数据模型来在第一层和第二层之间传输存储装置中的至少一些数据。换言之,操作520包括应用建议和/或数据模型来管理包括在集群的文件系统中的数据。在一些方法中,例如,如下面将进一步详细描述的(例如,参见图5C),建议和/或数据模型也可以在接收到新数据时应用于新数据。

现在参见图5B,示出了根据一个实施例的应用建议和/或数据模型以管理包括在预填充、集群的文件系统中的数据的示例性子过程,其中的一个或多个可以用于在一些方法中执行图5A的操作520。然而,应注意的是,图5B的子过程是根据一个实施例示出的,该实施例绝非旨在限制本发明。例如,尽管图5A指示图5B中包括的示例性子过程由节点502处的一个或多个处理器执行,但子过程中的任何一个或多个实际上可由集群的文件系统中的其他处理器中的任何处理器执行。因此,图5B中包括的子处理中的任何一个或多个可由以上图4中的控制器412、420中的一个或多个执行。

继续参见图5B,子操作540包括接收一个或多个建议和/或数据模型,其对应于在集群的文件系统的存储装置中数据的放置。如上所述,集群的文件系统包括具有第一层和第二层的存储器,其中第一层中具有两个或更多个共享节点,第二层中具有至少一个无共享节点。一个或多个建议和/或数据模型还基于数据工作负载特性。虽然优选地从其中应用建议和/或数据模型的存储环境导出数据工作负载特性,但是在一些方法中,可以使用其他信息导出建议和/或数据模型中的一个或多个。例如,可以使用使用在类似的集群的文件系统上执行的机器学习和/或深度学习算法编译的一个或多个数据模型。

在子操作540中接收的一个或多个建议和/或数据模型还用于识别存储在实际存储装置中的实际数据的某些部分,所述实际数据的某些部分被预测为受益于被转换到存储装置中的层中的特定层。参见子操作542。例如,数据的特定部分可被识别为具有包括在其中和/或对应于其的信息,这将改进现有机器学习和/或深度学习算法的准确性。因此,可能希望将所识别的数据部分转换到第二层中的无共享节点之一,使得其中包括的专用硬件(例如GPU)可以用于帮助使用或至少基于与该数据部分相关联的数据工作负荷特性来更新算法。根据另一示例,可以使用建议和/或数据模型来识别被预期为具有即将到来的数据传输繁重工作负载的数据的一部分。考虑到即将到来的数据传输繁重工作负载,预测该数据部分受益于存储在第二层中。预测基于预期的数据传输繁重工作负载和第二层中的无共享节点的配置两者,其优选地包括能够实现增加的数据传输速率的专用硬件。根据又一示例,数据的一部分可被识别为能够提供对机器学习和/或深度学习算法有价值的信息。由此,例如,如本领域技术人员在阅读本说明书之后将意识到的,数据的该部分可被确定为具有改善定制ILM方案的潜力,该定制ILM方案用于管理数据在集群的文件系统中的放置。

对于在子操作542中识别的实际数据的部分中的每个部分,做出关于是否应将给定部分数据传输到存储装置中的不同层的实际确定。见判定544。根据一些方法,执行判定544可以实际上涉及确定存储中的不同层的特定配置,并将它们与使用建议和/或数据模型作出的预测进行比较。例如,可以确定第二层中的任何无共享节点实际上是否包括专用硬件。此外,对于被确定为具有专用硬件的那些节点,可作出关于专用硬件能够针对给定节点实现什么性能水平(例如,诸如增加的数据传输速率能力)的进一步确定。

可做出关于第一层中的共享节点的类似确定。尽管共享节点可能不包括添加的专用硬件,但是共享节点中的每一个跨不同存储组件互连的方式允许某些操作并行执行,从而实现比单个无共享节点可能能够实现的处理速率更高的处理速率。由此得出,尽管考虑到即将到来的数据传输繁重工作负载,可以预测数据的某些部分受益于存储在具有无共享节点的第二层中,鉴于即将到来的数据处理密集型工作负载,可预测数据的其他部分受益于存储于第一层中,所述数据处理密集型工作负载可由此由一个以上处理组件并行地执行。

图5B的流程图被示出为响应于确定数据的给定部分不应当被传输至存储装置中的不同层而继续至子操作546。在那里,子操作546包括使用默认ILM方案来管理数据的给定部分在集群的文件系统中的放置。如上所述,ILM方案使数据存储所涉及的管理过程自动化,通常根据指定的策略组织数据,并且基于这些标准使从一个层到另一个层的数据迁移自动化。例如,较新的数据和/或更频繁地访问的数据优选地存储在较高性能介质上,而较不关键的数据存储在较低性能介质上。在一些方法中,用户还可以在某些ILM方案中指定特定存储策略。

返回到判定544,响应于确定数据的给定部分应该被传输到存储装置中的不同层,流程图进行到子操作548。在那里,子操作548包括准备与执行传输相关联的源和目的地层信息。根据一示例,将存储在第一层中的数据的一部分传输到第二层涉及准备识别该数据部分当前存储在存储中的何处的信息(例如,该数据部分被跨条带化的逻辑和/或物理地址),所述数据部分的总大小、与所述数据部分相关联的元数据,其中所述数据部分将存储在所述第二层中(例如,所述逻辑和/或物理地址),等等。

此外,子操作550包括发送一个或多个指令以将数据的给定部分从源层传输(例如,迁移)到目的地层。所述一个或多个指令可以包括目的地层中的预期存储位置的逻辑地址,或者与实际执行数据传输相关联的、在阅读本说明书之后将对本领域的技术人员显而易见的任何其他信息。

还应当注意,该数据部分也优选地被传输回其先前存储的层。这特别适用于从第一层转换到第二层的数据部分。再次,第二层的无共享节点中所包括的专用硬件提供改进的性能,并且因此优选地为相关数据保留。根据示例,优选地,转换到第二层的无共享节点以更新运行机器学习和/或深度学习算法的数据的一部分随后转换回第一层,从而允许专用硬件用于附加处理。

再次,针对在子操作542中识别的数据的部分中的每一者执行这些子过程。因此,图5B中所包括的子过程中的任何一个或多个子过程可以重复任何次数,例如,取决于识别了多少数据部分。

如上所述,使用在此包括的一些实施例形成的建议和/或数据模型还优选地用于管理将新接收的数据存储在存储装置中的过程。例如,建议和/或数据模型可以被应用于从用户、运行的应用、另一文件系统等接收的数据,以便确定传入数据的每个部分应当存储在集群的文件系统中的何处。因此,图5C示出了根据一个实施例的方法570的流程图。在不同实施例中,方法570可以根据本发明在图1-4等所描绘的任何环境中执行。当然,如本领域技术人员在阅读本说明书后将理解的,多于或少于图5C中具体描述的那些操作可被包括在方法570中。

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

如图5C所示,方法570的操作572包括接收新数据。取决于该方法,数据可作为流、在一个或多个分组中等被连续接收。此外,操作574包括使用建议和/或数据模型来识别新接收到的数据的与其相对应的部分。根据特定的方法,建议和/或数据模型优选地用于识别新接收的数据的被预测得益于被存储在存储装置中的特定层中的部分。

如上所述,本实施例中的集群的文件系统的存储具有其中具有两个或更多个共享节点的第一层以及其中具有至少一个无共享节点的第二层。一个或多个建议和/或数据模型还基于数据工作负载特性。因此,虽然鉴于即将到来的数据传输繁重工作负载,可以预测数据的某些部分受益于存储在具有无共享节点的第二层中,鉴于即将到来的数据处理密集型工作负载,可预测数据的其他部分受益于存储于第一层中,所述数据处理密集型工作负载可由此由一个以上处理组件并行地执行。因此,例如取决于所述方法,可以实施上文关于执行子操作542所描述的方法中的任一者或一者以上,以便执行操作572。

此外,对于在操作574中识别的新数据的部分中的每个部分,做出关于给定部分数据是否应当实际存储在存储装置中的特定层中的实际确定。参见判定576。根据一些方法,执行判定576可以实际上涉及确定存储装置中的不同层的特定配置,并将它们与新数据的所识别部分中的每一个进行比较。例如,可以确定第二层中的任何无共享节点实际上是否包括专用硬件。此外,对于被确定为具有专用硬件的那些节点,可以做出关于专用硬件能够针对给定节点实现什么性能(例如,诸如增加的数据传输速率能力)的进一步确定。

例如,根据本文描述的任何方法,还可以做出关于第一层中的共享节点的类似确定。例如,尽管共享节点可能不包括添加的专用硬件,但是共享节点中的每一个跨不同存储组件互连的方式允许某些操作并行执行,从而实现比单个无共享节点可能能够实现的处理速率更高的处理速率。由此得出,尽管考虑到即将到来的数据传输繁重工作负载,数据的某些部分可能受益于存储在具有无共享节点的第二层中,鉴于即将到来的数据处理密集型工作负载,可预测数据的其他部分受益于存储于第一层中,所述数据处理密集型工作负载可由此由一个以上处理组件并行地执行。

响应于确定新数据的给定部分实际上将不会受益于存储在存储装置中的层中的特定层中,方法570继续进行到操作578。在那里,操作578包括使用默认ILM方案来管理新数据的给定部分在集群的文件系统中的放置。根据绝不旨在限制本发明的示例,默认ILM方案可以规定新数据优选地作为默认被存储在第一层上,具有将新数据的某些部分存储在第二层上的选项。这允许第二层中包括的专用硬件被保留用于数据的相关部分,同时使用第一层管理数据的剩余部分。

然而,返回到判定576,响应于确定新数据的给定部分将受益于被存储在存储装置中的层中的特定层中,流程图前进到子操作580。在那里,子操作580包括发送一个或多个指令以将新接收到的数据的给定识别的部分存储在层的特定一个层中。再次,一个或多个指令可包括数据部分的预期存储位置的逻辑地址,或在阅读本说明书之后将对本领域技术人员显而易见的任何其他信息。

根据一示例,数据的特定部分可被识别为具有可被用来更新运行中的机器学习和/或深度学习算法的一个或多个特定特性。一个或多个指令可以由此使得该识别的数据部分被存储在第二层中,例如,使得包括在其中的专用硬件可以用于基于给定方法处理数据。根据另一示例,确定被预测具有即将到来的数据传输繁重工作负载的新数据的一部分将受益于存储在第二层中。具体地,第二层中的专用硬件可以提供增加的性能水平,其补充预期的即将到来的数据传输繁重的工作负载。新数据的部分由此优选地存储在第二层中。

然而,还应注意,存储在第二层中的数据部分可最终被传输到第一层。再次,第二层的无共享节点中所包括的专用硬件提供改进的性能,并且因此优选地为相关数据保留。例如,优选地,第二层的无共享节点处的用于更新运行中的机器学习和/或深度学习算法的数据的一部分随后转换回第一层,从而允许专用硬件用于附加处理。

再次,针对在操作574中识别的新数据的部分中的每个部分执行这些子过程。因此,图5C中所包括的任何一个或多个过程可重复任何次数,例如,取决于识别了多少数据部分和/或接收到的新数据量。

由此得出,本文所包括的实施例中的不同实施例能够实现能够支持单个(相同)命名空间中的条带化和非条带化存储配置两者的框架。此外,本文的一些实施例能够显著提高机器学习和/或深度学习算法表示给定文件系统的内部工作的准确度。反过来,这些改进的机器学习和/或深度学习算法能够增强ILM方案,以基于数据工作负载特性以及从中得到的建议和/或数据模型,在文件系统中的不同层之间适当地放置或迁移数据,其中一些层利用专用硬件来实现。此外,分别维护用于与实现条带化方案的层和实现非条带化方案的层进行交互的索引节点结构。因此,分别配置和维持各自的复制和可靠性。

本文所包括的一些实施例还能够基于对数据工作负载特性的分析来生成和提出建议和/或数据模型。该分析优选地采用数据类型、数据量、读取和/或写入访问模式等。这些建议和/或数据模型由此能够在不同层之间适当地迁移数据,其中一些层利用专用硬件启用。除了迁移之外,建议和/或数据模型还能够帮助开发用于新创建的文件、新接收的数据等的布置规则。

与常规产品所经历的缺点相比,这是特别令人希望的。例如,常规文件系统在延迟方面面临挑战,所述延迟源于跨多个磁盘条带化数据,由此使得计算基础设施在能够使用数据用于实际处理之前(例如,通过包括机器学习和/或深度学习算法)再调用跨不同磁盘存储的所有片段。

本发明可以是系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储介质(或媒体),所述计算机可读程序指令用于致使处理器执行本发明的方面。

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

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

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

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

这些计算机可读程序指令可以被提供给通用计算机的处理器,专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储介质中,可编程数据处理装置,和/或以特定方式起作用的其他设备,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。

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

附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中所标注的功能可以不以图中所标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或执行专用硬件与计算机指令的组合。

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

将清楚的是,前述系统和/或方法的不同特征可以任何方式组合,从而从以上呈现的描述中创建多个组合。

将进一步认识到,本发明的实施例可以代表顾客部署的服务的形式来提供以按需提供服务。

虽然以上已经描述了不同实施例,但应理解的是,这些实施例仅通过举例而非限制的方式呈现。由此,优选实施例的宽度和范围不应受任何上述示例性实施例的限制,而应仅根据所附权利要求及其等同物来限定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号