使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的利记博彩app

文档序号:6360170阅读:254来源:国知局
专利名称:使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的利记博彩app
技术领域
本发明的各实施例涉及数据存储的领域,具体而言,涉及使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统。
背景技术
文件系统是用于存储和组织文件和数据的方法。文件系统使用存储子系统以维持文件和数据。文件系统是对存储子系统施加逻辑结构以使客户端计算机创建、存储和访问存储子系统上的数据的文件的管理结构。分布式文件系统是通过网络支持文件以及多个客户端的存储器资源的共享的文件系统。群集文件系统是ー种使群集中的多个计算节点同时 访问存储在共享存储子系统上的相同数据的分布式文件系统。计算群集是带有多个节点的系统,所述多个节点彼此进行交互,以给客户端系统作为单个实体提供数据、应用、及其他系统资源。计算群集通过允许节点和共享存储器被添加到群集中来提供可缩放性和可靠性。文件系统被用来管理数据在计算群集内的存储。通过将存储器的特定区域指定到要被存储的数据,存储器被计算群集中的文件系统分配。群集中的计算节点将文件系统视为带有对群集文件系统的共享存储子系统的直接访问的本地资源。云计算是给客户端提供远程虚拟化计算资源作为服务的计算模型。云计算通过托管和通过网络远程并按需作为服务来提供资源,向客户端提供软件和硬件资源。从而,最終用户被允许按需利用计算资源,无需对基础结构和管理的投资。云计算的基础体系结构通常包括协カ工作的服务器的大的分布式群集。

发明内容
相应地,在第一方面,本发明提供了使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的方法为群集中的每ー个节点预留预定数量的存储分配区域,其中,每个存储分配区域都包括本地附接的存储器的单个存储盘上的一组连续的数据块;使用本地附接的存储器的单个存储盘上的连续的数据块集合,作为文件系统的块分配粒度,以便条带化要为所述群集中的计算操作而存储在文件系统中的数据;以及,使用共享存储子系统的单个数据块,作为文件系统的块分配粒度,以便条带化要为群集中的数据访问操作而存储在文件系统中的数据。该方法还可以进ー步包括将用于计算操作的数据分配到预留的存储分配区域中的至少ー个。该方法还可以进ー步包括,当所述群集中的节点的所述预留的存储分配区域的总数小于所述预定数量时,预留至少ー个另外的存储分配区域,直到所述节点的预留的存储分配区域的总数等于所述预定数量。该方法还可以进ー步包括将计算操作发送到所述计算群集中的节点,所述计算操作的数据被分配给所述节点的本地附接的存储器。该方法还可以进ー步包括将分配给节点的本地附接的存储器的每个连续的数据块集合复制到所述群集中的第二节点的本地附接的存储器。该方法还可以进ー步包括将用于数据访问操作的数据分配到共享存储子系统。该方法还可以进ー步包括跟踪分配给所述共享存储子系统以及所述文件系统中的本地附接的存储器的每个数据块的位置。优选地,所述数据访问操作是从包括下列各项的组中选择的簿记操作、数据传输操作、缓存管理操作、以及预先获取操作。该方法还可以进ー步包括,如果节点的计算操作有故障,则在与所述计算操作相关联的数据被复制到其中的第二节点上重新启动所述计算操作。优选地,群集为远程客户端托管计算服务。在第二方面,提供了使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的系统,包括计算群集,所述计算群集包括多个节点,其中,所述多个节点中的每ー个都包括本地附接的存储器,耦合到所述多个节点中的每ー个的共享存储子系统,以及耦合到所述共享存储子系统以及所述多个节点中的每ー个的文件系统管理器,其中,所述文件系统管理器为所述计算群集中的所述多个节点中的每ー个预留预定数量的存储分配区域,其中,每个存储分配区域都包括本地附接的存储器的单个存储盘上的一组连续的数据块,使用本地附接的存储器的单个存储盘上的连续的数据块集合,作为文件系统的块分配粒度,以便条带化要为所述计算群集中的计算操作而存储在文件系统中的数据,以及使 用共享存储子系统的单个数据块,作为文件系统的块分配粒度,以便条带化要为所述计算群集中的数据访问操作而存储在文件系统中的数据。优选地,文件系统管理器将计算操作发送到所述计算群集中的节点,所述计算操作的数据被分配给所述节点的本地附接的存储器。优选地,当所述节点的所述预留的存储分配区域的总数小于所述预定数量时,所述文件系统管理器预留至少ー个另外的存储分配区域,直到所述节点的所述预留的存储分配区域的总数等于所述预定数量。优选地,文件系统管理器将分配给节点的本地附接的存储器的每个连续的数据块集合复制到所述计算群集中的第二节点的本地附接的存储器,以及如果所述节点的计算操作有故障,则在与所述计算操作相关联的数据被复制到其中的第ニ节点上重新启动所述计算操作。在第三方面,提供了包括存储在计算机可读介质上的计算机程序代码的计算机程序,当被加载到计算机系统中并在其上执行吋,导致所述计算机系统执行根据第一方面所述的方法的所有步骤。该计算机程序可以呈现用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的计算机程序产品的形式,包括其中具有计算机可读的程序代码的计算机可读存储介质,所述计算机可读的程序代码包括计算机可读存储介质包括被配置成为群集中的每ー个节点预留预定数量的存储分配区域的计算机可读的程序代码,其中,每个存储分配区域都包括本地附接的存储器的单个存储盘上的一组连续的数据块,计算机可读存储介质还包括计算机可读的程序代码,这些程序代码被配置成使用本地附接的存储器的单个存储盘上的连续的数据块集合,作为文件系统的块分配粒度,以便条带化要为群集中的计算操作而存储在文件系统中的数据,以及被配置成使用共享存储子系统的单个数据块,作为文件系统的块分配粒度,以便条带化要为群集中的数据访问操作而存储在文件系统中的数据的计算机可读的程序代码。优选地,计算机可读的程序代码还包括被配置成将计算操作发送到所述计算群集中的节点,所述计算操作的数据被分配给所述节点的本地附接的存储器的计算机可读的程序代码。优选地,计算机可读的程序代码还包括计算机可读的程序代码,所述计算机可读的程序代码被配置成,当所述节点的所述预留的存储分配区域的总数小于所述预定数量时,所述文件系统管理器预留至少ー个另外的存储分配区域,直到所述节点的所述预留的存储分配区域的总数等于所述预定数量。优选地,计算机可读的程序代码还包括计算机可读的程序代码,所述计算机可读的程序代码被配置成跟踪分配给所述共享存储子系统以及所述文件系统中的本地附接的存储器每个数据块的位置。优选地,计算机可读的程序代码还包括计算机可读的程序代码,所述计算机可读的程序代码被配置成将分配给节点的本地附接的存储器的每个连续的数据块集合复制到所述群集中的第二节点的本地附接的存储器。优选地,计算机可读的程序代码还包括计算机可读的程序代码,所述计算机可读的程序代码被配置成,如果所述节点的计算操作有故障,则在与所述计算操作相关联的数据被复制到其中的第二节点上重新启动所述计算操作。本发明的各实施例涉及使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统。本发明的一方面包括用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的方法。该方法可包括,为群集中的每ー个节点预留预定数量的存储分配区域,其中,每个存储分配区域都包括本地附接的存储器的单个存储盘上的一组连续的数据块;使用本地附接的存储器的单个存储盘上的连续的数据块集合,作为文件系统的块分配粒度,以便条带化要为所述群集中的计算操作而存储在文件系统中的数据;以及使用共享存储子系统的单个数据块,作为文件系统的块分配粒度,以便条带化要为群集中的数据访问操作而存储在文件系统中的数据。本发明的另ー实施例包括用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的系统。该系统可包括计算群集,该计算群集包括多个节点,其中,所述多个节点中的每ー个都包括本地附接的存储器,耦合到所述多个节点中的每ー个的共享存储子系统,以及,耦合到所述共享存储子系统以及所述多个节点中的每ー个的文件系统管理器,其中,所述文件系统管理器为所述计算群集中的所述多个节点中的每ー个预留预定数量的存储分配区域,其中,每个存储分配区域都包括本地附接的存储器的单个存储盘上的一组连续的数据块,使用本地附接的存储器的单个存储盘上的连续的数据块集合,作为文件系统的块分配粒度,以便条带化要为所述计算群集中的计算操作而存储在文件系统中的数据,以及使用共享存储子系统的单个数据块,作为文件系统的块分配粒度,以便条带化要为所述计算群集中的数据访问操作而存储在文件系统中的数据。
本发明的另ー实施例包括用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的计算机程序产品,包括其中具有计算机可读的程序代码的计算机可读存储介质,所述计算机可读的程序代码包括计算机可读存储介质包括被配置成为群集中的每ー个节点预留预定数量的存储分配区域的计算机可读的程序代码,其中,每个存储分配区域都包括本地附接的存储器的单个存储盘上的一组连续的数据块,计算机可读存储介质还包括计算机可读的程序代码,这些程序代码被配置成使用本地附接的存储器的单个存储盘上的连续的数据块集合,作为文件系统的块分配细粒度,以便条带化要为群集中的计算操作而存储在文件系统中的数据,以及被配置成使用共享存储子系统的单个数据块,作为文件系统的块分配粒度,以便条带化要为群集中的数据访问操作而存储在文件系统中的数据的计算机可读的程序代码。


现在将參考各个附图,只作为示例,对本发明的优选实施例进行描述,其中图I示出了根据ー个实施例的带有使用动态块大小粒度为不同类型的应用优化的文件系统的计算群集;图2示出了根据ー个实施例的用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的方法的流程图;图3示出了根据ー个实施例的用于条带化要为计算群集中的计算操作存储在文件系统中的数据的块分配方案;图4示出了根据ー个实施例的用于条带化要为计算群集中的数据访问操作存储在文件系统中的数据的块分配方案;以及 图5示出了根据ー个实施例的其中可以实现用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的过程的系统的框图。
具体实施例方式下面的描述只用于说明本发明的一般原理,而不对下面要求的权利要求书中所叙述的发明构思作出限制。此外,此处所描述的特定特征可以与各种可能的组合和置換中的每ー种中的其他所描述的特征组合地使用。除非特别声明,所有术语都应被赋予它们的最广泛的可能的解释,包括从说明书的暗示含义以及被本领域的技术人员所理解的含义和/或如词典,论文等等中所定义的含义。该描述可以公开用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的多个优选实施例,以及其操作和/或构成部分。尽管将以存储分配过程以及存储设备来描述下面的描述以将本发明置于示例性实施例上的上下文中,但是应该记住,此处的包括权利要求的教导对其他类型的系统、设备以及应用(包括云计算环境中的系统、设备以及应用)可以具有广泛的应用。本发明的各实施例涉及使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统。使用共享存储器的群集文件系统不支持计算向数据的发送,支持处理大数据集的数据密集型应用(例如,数据分析应用)所需的特征。另外,使用共享存储器的群集文件系统的默认块大小很小,导致每个数据块预定一个任务的数据密集型应用的高任务开销。运行数据密集型应用的基础存储体系结构基于不提供标准的用于Unix的接ロ的可移植操作系统接ロ(POSIX)的因特网规模的文件系统。因特网规模的文件系统是适合于数据密集型应用但是不支持传统的应用的性能要求的专门的文件系统。在一个实施例中,对文件系统的块分配方案提供修改,以支持单个计算群集中的传统的应用以及数据密集型应用。例如,修改文件系统的数据分配,以允许POSix存储栈支持构建于传统的基于POSIX的群集文件系统上的云分析。在一个实施例中,计算群集的文件系统可以为数据密集型应用选择与计算操作相关联的数据的大块粒度以及为传统的应用选择与数据访问操作相关联的数据的小块粒度。在一示例性实施例中,修改文件系统循环的块分配方案,以使用连续的块(大块)的集合,作为用于为计算操作条带化数据的分配粒度。在另ー示例性实施例中,文件系统对于用于传统的应用的所有数据访问操作内部使用默 认块大小粒度,小块大小。图I示出了根据ー个实施例的带有使用动态块大小粒度为不同类型的应用优化的文件系统的计算群集。计算群集102包括多个计算节点104a,104b. . . 104,也称为应用节点。在一示例性实施例中,计算群集102包括可以扩展到数千计算节点104a, 104b. . . 104η的硬件体系结构。姆个计算节点104a, 104b. . . 104η都稱合到本地附接的存储器106a,106b. . . 106η。例如,本地附接的存储器106a,106b. . . 106η可以在物理上是计算节点104a,104b. . . 104η内部的和/或在物理上外部的,使用磁盘阵列设备直接附接的。在一个实施例中,本地附接的存储器106a,106b. . . 106η包括通过接ロ标准直接附接到计算节点104a,104b. . . 104η的存储设备。例如,接ロ标准包括但不仅限于,光纤通道(FC)、小型计算机系统接ロ(SCSI)或集成驱动器电子电路(IDE)。在一示例性实施例中,每个计算节点104a,104b. . . 104η都包括本地附接的存储器106a,106b. . . 106η的四个750GB串行高级技术附接(SAT A)驱动器。计算群集102包括被配置成管理计算群集102的文件系统的文件系统管理器108。例如,计算群集102的文件系统可包括但不仅限干,IBM通用并行文件系統 (GPFStm)0在一示例性实施例中,文件系统管理器108被具体化成软件,并可以从计算群集102中的任何独立节点运行。计算群集102还包括共享存储子系统114。例如,共享存储子系统114可包括但不仅限于,存储区域网络(SAN)设备。共享存储子系统114耦合到存储交換机112。计算节点104a,104b. . . 106耦合到存储交換机112以便访问共享存储子系统114。文件系统管理器108耦合到存储交換机112,以便使用共享存储子系统114来管理计算群集102的文件系统。共享存储子系统114被配置成给计算节点104a,104b. . . 104η提供对相同数据的并行访问。共享存储子系统114允许跨计算节点104a,104b. . . 104η共享写入带宽。在ー个实施例中,共享存储子系统114被设计成使用基础数据保护技术来规避硬件故障。例如,共享存储子系统114可以使用廉价磁盘冗余阵列(RAID)技术来提供数据保护。计算群集102还包括交换网络110。交换网络110被配置成为文件系统内的组件提供互连。在一个实施例中,交换网络Iio被配置成为计算节点104a,104b. . . 104η和文件系统管理器108提供互连。在一示例性实施例中,交换网络110是对于每ー个节点支架的千兆以太网交換机,以Linux软件运行I千兆/毎秒(gbps)的交換机之间的链路。在另ー实施例中,交换网络110进ー步被配置成通过网络116提供对客户端节点118的访问。例如,网络116包括但不仅限于广域网(WAN)。在一个实施例中,计算群集102远程地为客户端118托管数据和计算服务。例如,计算群集102启用云计算服务,以便为远程客户端在数据站点托管数据和计算服务。在一示例性实施例中,计算群集102被配置成托管数据分析应用的运行以及通过网络116远程为客户端118存储与数据分析应用相关联的数据。相应地,计算群集102以云方式启用并行性和可缩放性,以运行带有大数据集的数据密集型应用。例如,数据密集型应用包括将大计算任务分解为ー组较小的并行化计算的数据分析应用。图2示出了根据ー个实施例的用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的方法200的流程图。在202,文件系统管理器108为群集102中的姆ー个计算节点104a, 104b. . . 104η都预留了本地附接的存储器106a, 106b. . . 106η的单个存储盘上的包括一组连续的数据块的预先确定的数量的存储分配区域。在一个实施例中,文件系统管理器108事先为计算群集102中的每ー个计算节点104a,104b. . . 104η预先获取连续的存储分配区域的池。例如,事先预先获取连续的存储分配区域的池防止网络延迟和应用性能影响。相应地,姆ー计算节点104a, 104b. . . 104η将准备好连续的存储分配区域的池,将不会在输入/输出(I/O)请求的路径中产生网络延迟。在一示例性实施例中,为计算群集102中的姆ー个计算节点104a, 104b. . . 104η预留的预定的存储分配区域的数量是10。例如,文件系统为计算群集102中的每ー个计算节点104a,104b. . . 104η预先获取十个存储分配区域的池,包括连续的ー组数据块。在其他实施例中,为计算群集102中的姆ー个计算节点104a, 104b. . . 104η预留的存储分配区域的预定数量可以在但不仅限于5-200个存储分配区域之间。为群集102中的每ー个计算节点104a, 104b. . . 104η预留的存储分配区域的预定数量可以基于要用于数据块的相邻性的级另O,在计算群集102中支持的应用的类型,要使用的文件系统,以及计算群集102中的应用的性能要求而变化范围。 在204,文件系统管理器108使用本地附接的存储器106a,106b. . . 106η的单个存储盘上的连续的数据块集合,来作为文件系统的块分配粒度,以便条带化要被存储在文件系统中以便从计算群集102中的计算节点104a,104b. . . 104η执行计算操作的数据。在一个实施例中,文件系统管理器108使用本地附接的存储器106a,106b. . . 106η的单个存储盘上的连续的数据块集合,大数据块或大块大小粒度,作为分配要为从计算群集102中的计算节点104a,104b. . . 104η的计算操作存储的数据的分配粒度。例如,文件系统管理器108使用大块大小粒度来分配要为计算操作存储的数据,因为小块大小会导致数据密集型应用的高任务开销。相应地,文件系统的数据分配以及计算群集102的数据布局信息被修改以使用大块大小粒度,以支持数据密集型应用的要求。单个块的块大小粒度可以变化。取决于性能要求以及折衷以及所使用的文件系统,单个块的默认块大小可以变化。例如,单个块的块大小粒度可以但不仅限于,在8ΚΒ到16ΜΒ之间变化。在一示例性实施例中,单个块的块大小粒度是1ΜΒ。例如,IMB固定大小的数据块防止文件系统中的分段,保持最优顺序读取和写入性能,并允许节点级别的局部性。在其他示例性实施例中,单个块的块大小粒度是256ΚΒ和512ΚΒ。在一个实施例中,用于条带化要为计算操作存储在文件系统中的数据的存储分配区域与预先确定的大小相邻。例如,用于条带化要为计算操作存储在文件系统中的数据的存储分配区域可以是但不仅限于,从8ΜΒ到256ΜΒ连续的。在一示例性实施例中,64个IMB块被分组到用于条带化要为计算操作存储在文件系统中的数据的64ΜΒ存储分配区域。例如,用于条带化要为计算操作存储在文件系统中的数据的大块粒度可以是包括64个连续的单个IMB数据块的64ΜΒ数据块。在其他实施例中,用于条带化要为计算操作存储在文件系统中的数据的块大小粒度可以随着所使用的文件系统和应用性能要求而变化。文件系统管理器108使用计算群集102中的每ー计算节点104a,104b. . . 104η的本地附接的存储器106a,106b. . . 106η,而并非共享存储子系统114来为计算操作存储数据。例如,由于本地附接的存储器106a,106b的低成本以及共享存储子系统114的带宽限制,本地附接的存储器106a,106b. .. 106η用于为计算操作存储数据。例如,数据密集型应用的存储器层构建于商品组件上,本地附接的存储器106a,106b. . . 10η,以最小化存储成本,允许计算群集102可缩放到数千计算节点104a,104b. . . 104η,以便高度并行的应用可以处理大量的数据。此外,数据密集型应用的存储器层还使用本地附接的存储器106a,106b. . . 106η来构建,以通过能够将计算操作发送到数据而并非将数据发送到计算操作,来有效地支持在数据密集型应用中常见的大文件。在一示例性实施例中,计算节点104a, 104b. . . 104η运行和支持从其中启动了计算操作的数据密集型类别的应用。在一个实施例中,数据密集型类别的应用包括但不仅限于,将大计算分解为较小的可并行化的计算的集合的应用。数据密集型应用中的常见的特征是,它们是并行的,以及它们的数据访问带宽要求支配其他资源要求。例如,数据密集型应用通过分区数据集使用映射图,支持计算被分解成较小的并行计算,并通过可以在计算群集102中的大计算节点104a,104b. . . 104η上并行化和执行的键/值对来减少函数。 在一示例性实施例中,数据密集型应用包括基于云计算的分析应用。例如,基于云计算的分析应用包括但不仅限于,处理大量的连续地变化的数据的科学应用,包括卫星图像模式匹配应用,用于从基因组序列发现生物机能的应用,用于从望远镜图像导出的天文学数据的应用,以及使用磁共振成像(MRI)数据的大脑图形(patters)。在另ー实施例中,数据密集型应用还包括诸如web捜索应用以及数据索引和挖掘应用之类的因特网规模的数据处理应用。在206,文件系统管理器108将用于计算操作的数据分配到至少ー个预留的存储分配区域中。在一个实施例中,文件系统管理器108跨文件系统实现数据的条带化,其中大文件被分成相等大小的块,以及以循环的方式将连续的块置于不同的磁盘上。在一示例性实施例中,文件系统使用宽条带化,以循环的方式跨本地附接的存储器106a,106b. . . 106η来条带化连续的数据块集合。例如,条带化技术包括但不仅限干,宽条带化、窄条带化、以及无条带化。在208,当计算节点104a, 104b. . . 104η的预留的存储分配区域的总数小于预定阈值时,文件系统管理器108预留至少ー个另外的存储分配区域,直到计算节点104a,104b. . . 104η的预留的存储分配区域的总数等于预定阈值。在一个实施例中,文件系统管理器108为计算节点104a,104b. . . 104η预留了本地附接的存储器106a,106b. . . 106η的单个存储盘上的包括一组连续的数据块的至少ー个另外的存储分配区域,直到节点104a, 104b. . . 104η的预留的存储分配区域的总数等于预定阈值。例如,当计算节点104a,104b. . . 104η的池的基数小于10时,文件系统管理器108为计算群集102中的计算节点104a, 104b. . . 104η预留了包括连续的数据块集合的另外的存储分配区域。在210,文件系统管理器108将计算操作发送到计算群集102中的计算节点104a,104b. . . 104η,所述计算操作的数据被分配给计算节点104a, 104b. . . 104η的本地附接的存储器106a,106b. . . 106η。在一个实施例中,计算操作以及任务被发送到用于计算操作的数据所驻留的计算节点104a,104b. . . 104η。例如,将计算任务发送到数据降低了网络开销,使得计算被处理得很快。在一示例性实施例中,通过使用文件系统的ioctl,使文件系统的块位置信息向应用暴露,计算任务与数据一起位于文件系统中。相应地,文件系统管理器108使用块位置信息来将计算任务发送到与计算任务相关联的数据所驻留的带有本地附接的存储器 106a, 106b. · · 106n 的计算节点 104a, 104b. · · 104η。在212,文件系统管理器108将分配给计算节点104a,104b. . . 104η的本地附接的存储器106a,106b. . . 106η的每个连续的数据块集合复制到计算群集102中的至少ー个另外的计算节点104a,104b. · · 104η的本地附接的存储器106a,106b. · · 106η。例如,数据密集型应用需要能够从基础商品组件中的故障恢复。相应地,在需要数据被跨多个节点复制的多个节点和盘故障的情况下,数据密集型应用需要能够恢复和前进,以便在节点或盘故障的情况下,计算可以在不同的节点上重新启动。在一个实施例中,如果节点的计算操作有故障,则在与计算操作相关联的数据被复制到其中的第二节点上重新启动计算操作。复制的机制可以基于所使用的文件系统和群集组件而变化。在一示例性实施例中,文件系统使用单个源复制模型,写入器将副本转发到所有副本中。在另ー示例性实施例中,文件系统使用流水线复制,其中,写入器上的向外的带宽不跨多个流共享,以及写入数据可以在数据被写入到节点的同时,以从流水线中的一个节点到下一节点的序列被流水线化。
在214,文件系统管理器108使用共享存储子系统114的单个数据块,作为文件系统的块分配粒度,以便条带化要为计算群集102中的计算节点104a, 104b. . . 104η的数据访问操作而被存储在文件系统中的数据。在一个实施例中,文件系统管理器108使用共享存储子系统114的单个数据块,小块,作为用于为传统的应用分配数据的块分配粒度。在一示例性实施例中,文件系统管理器108使用到同一个文件的并行写入器,允许为传统的应用跨多个节点共享写入带宽。在一示例性实施例中,文件系统管理器108为传统的应用的数据访问操作使用共享存储子系统114的单个数据块,以便进行有效的缓存管理,并降低预先获取开销,因为应用记录可以横跨不同的盘上的多个块。例如,内部数据访问操作可包括但不仅限于,簿记操作、数据传输操作、缓存管理操作,以及预先获取操作。相应地,文件系统管理器108为已经为传统的应用优化的盘访问以及预先获取操作使用小块粒度。在216,文件系统管理器108为从计算节点104a,104b. . . 104η到共享存储子系统114的数据访问操作分配数据。在218,文件系统管理器108跟踪分配给共享存储子系统114以及计算群集102中的姆ー个计算节点104a, 104b. . . 104η的本地附接的存储器106a, 106b. . . 106η的姆个数据块的位置。在一个实施例中,文件系统管理器108使用分配图来跟踪分配给共享存储子系统114以及计算群集102中的姆ー个计算节点104a, 104b. . . 104η的本地附接的存储器106a, 106b. . . 106η的每个数据块的位置。在一个实施例中,文件系统管理器108为计算群集102中的姆ー个计算节点104a, 104b. . . 104η提供对分配图的访问。例如,计算节点104a,104b. . . 104η使用分配图来确定分配给共享存储子系统114以及本地附接的存储器106a,106b. . . 106η的每ー个块的位置。在一个实施例中,分配图被分成大量的可锁定的分配区域,η节点计算群集102有η个区域,以允许对分配位图的并行更新。在一示例性实施例中,分配图中的每个区域都包含群集文件系统102中的每个盘上的I/η的盘块的分配状态,在任何给定时间点,每个计算节点104a,104b. . . 104η都具有X个区域的所有权,并使用这些区域来试图满足所有分配请求。例如,位图布局使文件系统通过一次只访问单个分配区域来分配跨所有盘适当地条带化的盘空间。相应地,锁定冲突被最小化,因为计算节点104a,104b. .. 104η可以从不同的区域分配空间。图3示出了根据ー个实施例的用于条带化要被存储在文件系统中以便在计算群集中执行计算操作的数据的块分配方案。在一个实施例中,块分配方案使用本地附接的存储器106a,106b. . . 106η的单个存储盘上的连续的数据块集合,来作为给来自计算群集102中的计算节点104a,104b. . . 104η的计算操作分配要被存储的数据的块分配粒度。示出了本地附接的存储器106a,106b. .. 104η的多个存储盘302a,302b. . . 302η。文件304被分成多个固定大小的数据块。在一示例性实施例中,文件304被分成多个IMB的数据块。多个单个IMB数据块被分组到多个连续的数据块集合。例如,对于64ΜΒ级别的相邻性,64个IMB固定大小的连续的数据块被分组到多个64ΜΒ数据块集合。每ー单个64ΜΒ数据块集合以循环的方式被分配给本地附接的存储器106a,106b. . . 106η的单个盘。例如,连续的数据块集合306a被分配给本地附接的存储器106a,106b. . . 106η的单个存储盘302a。连续的数据块集合306a被分配给本地附接的存储器106a,106b. . . 106η的单个存储盘302a。连续的数据块集合306b被分配给本地附接的存储器106a, 106b. . . 106η的单个存储盘302b。连续的数据块集合306c被分配给本地附接的存储器106a,106b. . . 106η的单个存储盘302c。连续的数据块集合306η被分配给本地附接的存储器106a, 106b. · · 106η的单个存储盘302η。连续的数据块集合308a被分配给本地附接的存储器106a,106b. . . 106η的单个存储盘302a。连续的数据块集合308b被分配给本地附接的存储器106a,106b. . . 106η的单个存储盘302b。连续的数据块集合306c被分配给本地附接的存储器106a,106b. . . 106η的单个存储盘308c。连续的数据块集合308η被分配给本地附接的存储器106a,106b. . . 106η的单个存储盘302η。连续的数据块集合310a被分配给本地附接的存储器106a,106b. . . 106η的单个存储盘302a。连续的数据块集合310b被分配给本地附接的存储器106a,106b. . . 106η的单个存储盘302b。连续的数据块集合310c被分配给本地附接的存储器106a,106b. . . 106η的单个存储盘302c。连续的数据块集合306η被分配给本地附接的存储器106a,106b. . . 106η的单个存储盘310。图4示出了根据ー个实施例的用于条带化要为计算群集102中的数据访问操作存储在文件系统中的数据的块分配方案。在一示例性实施例中,文件系统管理器108使用共享存储子系统114的单个存储盘上的单个块,作为用于为用于传统的应用的数据访问操作分配数据的块分配粒度。例如,数据访问操作包括内部簿记操作、数据传输操作、缓存管理操作,以及为传统的应用优化的预先获取操作。文件404被分成多个固定大小的数据块。在一示例性实施例中,文件404被分成多个IMB的数据块。每ー单个IMB数据块集合以循环的方式被分配给共享存储子系统114的单个盘。例如,数据块406a被分配给共享存储子系统114的单个存储盘402a。数据块406a被分配给共享存储子系统114的存储盘402a,数据块406b被分配给存储盘402b,数据块406c被分配给存储盘402c,以及数据块406η被分配给存储盘402η。数据块408a被分配给共享存储子系统114的存储盘402a,数据块408b被分配给存储盘402b,数据块408c被分配给存储盘402c,以及数据块408η被分配给存储盘402η。数据块410a被分配给共享存储子系统114的存储盘402a,数据块410b被分配给存储盘402b,数据块410c被分配给存储盘402c,以及数据块410η被分配给存储盘402η。数据块412a被分配给共享存储子系统114的存储盘402a,数据块412b被分配给存储盘402b,数据块412c被分配给存储盘402c,以及数据块412η被分配给存储盘402η。数据块414a被分配给共享存储子系统114的存储盘402a,数据块414b被分配给存储盘402b,数据块414c被分配给存储盘402c,以及数据块414η被分配给存储盘402η。数据块416a被分配给共享存储子系统114的存储盘402a,数据块416b被分配给存储盘402b,数据块416c被分配给存储盘402c,以及数据块416η被分配给存储盘402η。图5示出了根据ー个实施例的其中可以实现用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的过程的系统的框图。系统500包括连接到ー个或多个服务器计算系统530的一个或多个客户端设备501。服务器530包括用于传递信息的总线502或其他通信机制,以及用于处理信息的与总线502耦合的处理器(CPU)504。服务器530还包括耦合到总线502的主存储器506,如随机存取存储器(RAM)或其他动态存储设备,用于存储信息和待由处理器504执行的指令。主存储器506还可以用于在待由处理器504执行的指令的执行过程中存储临时变量或其他中间信息。 服务器计算机系统530进ー步包括耦合到总线502的只读存储器(ROM) 508或其他静态存储设备,用于为处理器504存储静态信息和指令。提供了存储设备510,如磁盘或光盘,并耦合到总线502,用于存储信息和指令。总线502可以包含,例如用于寻址视频存储器或主存储器506的32地址线。总线502也可以包括,例如用于在诸如CPU 504、主存储器506、视频存储器和存储器510之间传输数据的32比特数据总线。可另选地,可以使用多路复用数据/地址线来代替単独的数据线和地址线。服务器530可以通过总线502耦合到显示器512,以便向计算机用户显示信息。包括字母数字键及其他键的输入设备514耦合到总线502,以便向处理器504传递信息和命令选择。另ー种用户输入设备包括光标控制装置516,如鼠标、轨迹球或光标方向键,用于向处理器504传递方向信息和命令选择,并用于控制显不器512上的光标移动。响应于处理器504执行主存储器506中包含的ー个或多个指令的ー个或多个序列,由服务器530执行本发明的功能。可以从另一个计算机可读介质(如存储设备510)将这样的指令读取到主存储器506中。执行主存储器506中包含的指令序列会使处理器504执行此处所描述的处理步骤。还可以使用多处理布局中的一个或多个处理器来执行主存储器506中包含的指令序列。在替换实施例中,可以使用硬线连接的电路来代替软件指令或与软件指令相结合,来实现本发明。如此,本发明的各实施例不限于硬件电路和软件的任何特定的组合。计算机可读介质的各种形式可以涉及向处理器504传送ー个或多个指令的ー个或多个序列以供其执行。例如,指令最初可以位于远程计算机的磁盘上。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线路发送指令。服务器530本地的调制解调器可以通过电话线接收数据,并使用红外发射器将数据转换为红外信号。耦合到总线502的红外检测器可以接收红外信号中携带的数据,并将数据放到总线502中。总线502向主存储器506传送数据,处理器504从主存储器506中检索指令并执行这些指令。在由处理器504执行之前或之后,从主存储器506接收到的指令可以可选地存储在存储设备510中。服务器530还包括耦合到总线502的通信接ロ 518。通信接ロ 518提供耦合到网络链路520的双向数据通信,而网络链路520又连接到现在通常被称为因特网528的全球分组数据通信网络。因特网528使用携帯了数字数据流的电的、电磁的或光的信号。向服务器530以及从服务器530传送数字数据的经过各种网络的信号和网络链路520上的信号,以及经过通信接ロ 518的信号,是输送信息的载波的示例形式。在服务器530的另ー实施例中,接ロ 518通过通信链路520连接到网络522。例如,通信接ロ 518可以是用于提供到对应类型的电话线路(可以包括网络链路520的一部分)的数据通信连接的综合业务数字网(ISDN)卡,或调制解调器。作为另ー个示例,通信接ロ 518可以是提供到兼容的LAN的数据通信连接的局域网(LAN)卡。还可以实现无线链路。在任何这样的实现中,通信接ロ 518都发送和接收携带了代表各种信息的数字数据流的电的、电磁的或光的信号。网络链路520通常通过ー种或多种网络提供到其他数据设备的数据通信。例如,网络链路520可以通过局域网522提供到主机计算机524或到由因特网服务提供商(ISP)526运营的数据设备的连接。ISP526又通过因特网528提供数据通信业务。局域网522和 因特网528两者都使用携帯了数字数据流的电的、电磁的或光的信号。向服务器530以及从服务器530传送数字数据的经过各种网络的信号和网络链路120上的信号,以及经过通信接ロ 518的信号,是输送信息的载波的示例形式。服务器530可以通过网络、网络链路520和通信接ロ 518发送/接收消息和数据,包括电子邮件、程序代码。此外,通信接ロ 518可以包括USB/调谐器,以及网络链路520可以是用于将服务器530连接到有线信号提供商、卫星提供商或其他陆地传输系统以便从另一源接收消息、数据和程序代码的天线或电缆。此处所描述的本发明的示例性版本可以被实现为诸如包括服务器530的系统500之类的分布式处理系统中的逻辑操作。本发明的逻辑操作可被实现为在服务器530中执行的步骤的序列,以及作为系统500内的互连的机器模块。实现是选择问题,并可以取决于实现本发明的系统500的性能要求。如此,构成本发明的所述示例版本的逻辑操作被称为,例如操作、步骤或模块。类似于上文所描述的服务器530,客户端设备501可包括处理器、存储器、存储设备、显示器、输入设备和用于将客户端设备连接到因特网528、ISP 526或LAN 522,用于与服务器530进行通信的通信接ロ(例如,电子邮件接ロ)。系统500还可以包括以与客户端设备501相同方式操作的计算机(例如,个人计算机、计算节点)505,其中,用户可以使用一台或多台计算机505来管理服务器530中的数据。一般而言,如此处所使用的术语“计算机可读介质”是指參与向处理器504提供指令以供其执行的任何介质。这样的介质可以呈现许多形式,包括但不仅限于,非易失性介质,易失性介质和传输介质。非易失性介质包括,例如光盘或磁盘,如存储设备510。易失性介质包括动态存储器,如主存储器506。传输介质包括同轴电缆、铜线和光纤,包括构成总线502的线路。如此,公开了使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统。如本领域技术人员所理解的,本发明的各方面可以作为系统、方法或计算机程序产品来实现。本发明的一方面包括用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的计算机程序产品。该计算机程序产品包括其上包含计算机可读程序代码的计算机可读存储介质。计算机可读存储介质包括被配置成为群集中的每ー个节点预留预定数量的存储分配区域的计算机可读程序代码,其中,每个存储分配区域都包括本地附接的存储器的单个存储盘上的一组连续的数据块。计算机可读存储介质还包括计算机可读程序代码,这些程序代码被配置成使用本地附接的存储器的单个存储盘上的连续的数据块集合,作为文件系统的块分配粒度,以便条带化要为群集中的计算操作而存储在文件系统中的数据。计算机可读存储介质还包括计算机可读程序代码,这些程序代码被配置成使用共享存储子系统的单个数据块,作为文件系统的块分配粒度,以便条带化要为群集中的数据访问操作而存储在文件系统中的数据。因此,本发明的各方面可以采取此处可以一般性地被称为“电路”、“模块”或“系统”的完全硬件实施例、完全软件实施例(包括固件、常驻软件,微代码等等)或组合了软件和硬件方面的实施例的形式。此外,本发明的各方面还可以采取以在其上体现了计算机可读的程序代码的ー个或多个计算机可读介质体现的计算机程序产品的形式。
可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读介质可以是,例如但不仅限干,电、磁、光、电磁、红外、或半导体系统、装置、或设备或前面的各项的任何合适的组合。更具体的计算机可读存储介质的示例(非穷尽列表)包括下列各项具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光存储设备、磁存储设备,或前面的各项的任何合适的组合。在此文档的上下文中,计算机可读存储介质可以是可以包含、或存储供指令执行系统、设备或装置使用或与它们一起使用的程序的任何有形的介质。计算机可读信号介质可以包括其中带有计算机可读程序代码的传播的数据信号,例如,无论是在基带中,还是作为载波的一部分。这样的传播信号可以呈现各种形式中的任何ー种形式,包括但不仅限干,电磁、光学或其任何合适的组合。计算机可读信号介质可以是不是计算机可读存储介质,并且能够传递、传播或传输供指令执行系统、设备或装置使用或与它们结合使用的程序的任何计算机可读介质。在计算机可读介质上体现的程序代码可以使用任何合适的介质进行传输,包括但不仅限于无线、有线线路、光缆、RF等等,或前面的各项的任何合适的组合。用于执行本发明的各方面的操作的计算机程序代码可以以ー种或多种编程语言的任何组合来进行编写,包括诸如Java、Smalltalk、C++等等之类的面向对象编程语言,以及诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。程序代码可以作为独立软件包完全在用户的计算机上,部分地在用户的计算机上执行,部分地在用户的计算机上并且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何网络类型连接到用户的计算机,包括LAN或广域网WAN,或者可以连接到外部计算机(例如,使用因特网服务提供商,通过因特网)。上文參考根据本发明的各实施例的方法、设备(系统)、以及计算机程序产品的流程示和/或框图描述了本发明的各个方面。可以理解,流程图和/或框图的每ー框,流程图和/或框图中的框的组合,都可以通过计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机,或其他可编程数据处理设备的处理器,以产生机器,以便通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在该流程图和/或框图框所指定的功能/动作的装置。这些计算机程序指令还可以存储在计算机可读介质中,该介质可以指示计算机或其他可编程数据处理设备或其他设备以特定方式运转,以便存储在计算机可读介质中的指令产生ー种包括了指令的产品,这些指令实现了在该流程图和/或框图框所指定的功能/动作。计算机程序指令还可以加载到计算机、其他可编程数据处理设备,或其他设备中,以使一系列操作步骤在计算机上、其他可编程设备上或其他设备上执行,以产生计算机实 现的过程,以便在计算机或其他可编程设备上执行的指令提供用于实现在流程图和/或框图框所指定的功能/动作的过程。
权利要求
1.一种用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的方法,包括 为群集中的每ー个节点预留预定数量的存储分配区域,其中,每个存储分配区域都包括本地附接的存储器的单个存储盘上的连续的数据块集合; 使用本地附接的存储器的单个存储盘上的连续的数据块集合,作为文件系统的块分配粒度,以便条带化要为所述群集中的计算操作而存储在文件系统中的数据;以及 使用共享存储子系统的单个数据块,作为文件系统的块分配粒度,以便条带化要为群集中的数据访问操作而存储在文件系统中的数据。
2.如权利要求I所述的方法,进ー步包括 将用于计算操作的数据分配到所述预留的存储分配区域中的至少ー个。
3.如权利要求I或2所述的方法,进ー步包括 当所述群集中的节点的预留的存储分配区域的总数小于所述预定数量时,预留至少ー个另外的存储分配区域,直到所述节点的预留的存储分配区域的总数等于所述预定数量。
4.根据前述任何一个权利要求所述的方法,进ー步包括 将计算操作发送到所述群集中的节点,所述计算操作的数据被分配给所述节点的本地附接的存储器。
5.根据前述任何一个权利要求所述的方法,进ー步包括 将分配给节点的本地附接的存储器的每个连续的数据块集合复制到所述群集中的第ニ节点的本地附接的存储器。
6.根据前述任何一个权利要求所述的方法,进ー步包括 将用于数据访问操作的数据分配到所述共享存储子系统。
7.根据前述任何一个权利要求所述的方法,进ー步包括 跟踪分配给所述共享存储子系统以及所述文件系统中的本地附接的存储器的每个数据块的位置。
8.根据前述任何一个权利要求所述的方法,其中,所述数据访问操作是从包括下列各项的组中选择的簿记操作、数据传输操作、缓存管理操作、以及预先获取操作。
9.如权利要求6所述的方法,进ー步包括 如果节点的计算操作有故障,则在与所述计算操作相关联的数据被复制到其中的第二节点上重新启动所述计算操作。
10.根据前述任何一个权利要求所述的方法,其中,所述群集为远程客户端托管计算服务。
11.一种用于使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统的系统,包括 计算群集,所述计算群集包括 多个节点,其中,所述多个节点中的每ー个都包括本地附接的存储器, 耦合到所述多个节点中的每ー个的共享存储子系统,以及 耦合到所述共享存储子系统以及所述多个节点中的每ー个的文件系统管理器,其中,所述文件系统管理器 为所述计算群集中的所述多个节点中的每ー个预留预定数量的存储分配区域,其中,每个存储分配区域都包括本地附接的存储器的单个存储盘上的连续的数据块集合, 使用本地附接的存储器的单个存储盘上的连续的数据块集合,作为文件系统的块分配粒度,以便条带化要为所述计算群集中的计算操作而存储在文件系统中的数据,以及 使用共享存储子系统的单个数据块,作为文件系统的块分配粒度,以便条带化要为所述计算群集中的数据访问操作而存储在文件系统中的数据。
12.如权利要求11所述的系统,其中,所述文件系统管理器将计算操作发送到所述计算群集中的节点,所述计算操作的数据被分配给所述节点的本地附接的存储器。
13.如权利要求11或12所述的系统,其中,当节点的预留的存储分配区域的总数小于所述预定数量时,所述文件系统管理器预留至少ー个另外的存储分配区域,直到所述节点的所述预留的存储分配区域的总数等于所述预定数量。
14.如权利要求11到13中的任何一个权利要求所述的系统,其中,所述文件系统管理器 将分配给节点的本地附接的存储器的每个连续的数据块集合复制到所述计算群集中的第二节点的本地附接的存储器,以及 如果节点的计算操作有故障,则在与所述计算操作相关联的数据被复制到其中的第二节点上重新启动所述计算操作。
15.ー种包括存储在计算机可读介质上的计算机程序代码的计算机程序,当被加载到计算机系统中并在其上执行吋,导致所述计算机系统执行根据权利要求I到10中任ー权利要求所述的方法的所有步骤。
全文摘要
本发明涉及使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统。本发明的各实施例涉及使用动态块大小粒度来为计算群集中的不同类型的应用优化文件系统。示例性实施例包括为群集中的每一个节点预留预定数量的存储分配区域,其中,每个存储分配区域都包括本地附接的存储器的单个存储盘上的连续的数据块集合;使用本地附接的存储器的单个存储盘上的连续的数据块集合,作为文件系统的块分配粒度,以便条带化要为所述群集中的计算操作而存储在文件系统中的数据;以及使用共享存储子系统的单个数据块,作为文件系统的块分配粒度,以便条带化要为群集中的数据访问操作而存储在文件系统中的数据。
文档编号G06F3/06GK102844734SQ201180018635
公开日2012年12月26日 申请日期2011年4月8日 优先权日2010年4月14日
发明者P·萨卡尔, P·邦德伊, H·普查, M·A·沙赫, R·特瓦利, K·古普塔, R·阿南塔纳拉亚南 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1