以应用程序为中心分布式存储系统和方法与流程

文档序号:12071223阅读:344来源:国知局
以应用程序为中心分布式存储系统和方法与流程

本专利申请要求于2014年9月4日提交的美国临时专利申请No.62/045,927的优先权,该专利申请的内容以引用的方式并入本文。

技术领域

本发明整体涉及数据存储。更具体地,本发明涉及以增强延迟参数和保护参数的方式划分数据和将数据存储于多个存储源上的系统和方法。

发明背景

软件定义存储(SDS)为计算机数据存储的概念,其中数字数据的存储由软件而非存储硬件自身来管理。先前由每个独立硬件装置所管理的许多操作被虚拟为软件。多个存储硬件元件可利用中央接口通过软件来管理。

存储和运算需求和工作负荷连续地改变。数据要求持续增加。现有SDS系统受限于数种方式,通过对于大多数的软件特征而言缺乏了解数据的子卷水平来举例,所以能力(诸如快照和数据分层)必须在卷水平而非在应用程序或虚拟机器水平发生。这由于其遵守传统存储架构限制和卷而引起。

服务质量(QoS)(如果可用的话)通常也受限于具体卷。这意味着,如果存储或应用程序管理者想要变更应用程序或虚拟机器的当前QoS设定,那么需要将当前QoS设定迁移至另一卷。该卷不可调整至虚拟机器的需求。

SDS往往整个地置换可用于存储系统上的软件服务。换句话讲,由于SDS当前存在,意味着机构两次购买该特征。一旦其“包括”有硬件,则同样包括有SDS解决方案。对于该“双次购买”的理由为IT专业人员现在可通过单个玻璃片管理存储,并且未来可购买无这些服务的存储硬件。实际上,难以找到一种不具有一些形式的数据服务的存储系统。

最终,大多数SDS架构取决于单或双控制器架构。这限制了系统的缩放能力并且限制了可用性。这些对于SDS设计而言为关键特征,因为其建议置换所有数据服务。如果这些节点故障,那么所有服务停止。

因此,在本领域中存在对改善软件定义存储方法和系统的需求。



技术实现要素:

在本发明的实施例中,提供了一种软件定义存储网络,该软件定义存储网络包括一个或多个存储节点和计算机系统,每个存储节点包括计算机处理器和一个或多个数据存储装置;该一个或多个存储装置包括存储划分为一个或多个卷的数据的计算机可读介质;其中一个或多个卷对于网络上的至少子组的存储节点和非存储节点可见;该计算机系统与具有计算机处理器的网络通信,该计算机处理器执行存储于计算机可读介质上的指令以定义提供存储服务的多个行为者;其中每个行为者定义卷的至少一者的虚拟表示并且充当至少一个数据存储装置的每一者的全部或部分的排他性或非排他性控制器;其中多个行为者的每一者根据至少一个策略将每个卷的数据放置于存储装置上;该至少一个策略包括维持每个卷的最大延迟目标。

在本发明的一个方面,至少一个策略包括下述之一:对延迟目标、每秒的输入/输出操作和/或带宽进行优化。

在本发明的一个方面,软件服务部分地基于访问存储装置的每一者的卷的一个或多个用户的体验而确定每个存储装置的延迟性能特征。

在本发明的另一个方面,存储服务基于每个卷的延迟目标和可用于卷的每个存储装置的所确定延迟特征而实现将每个卷的数据放置于存储装置上。

在本发明的另一个方面,多个存储服务合并成单个存储服务。

在本发明的另一个方面,存储服务允许将复制数据放置于违背对于每个卷所确定的最大延迟目标的存储装置上,其中复制数据的拷贝可用于维持延迟目标。

在本发明的另一个方面,软件服务提供每个节点之间一致的每个卷的名称,其中卷对于应用程序可见。

在本发明的另一个方面,用于访问或存储存储装置的每一者上的数据所需的放置信息部分地可用于存储服务并且通过发现协议来部分地确定。

在本发明的另一个方面,软件服务提供用于确定通过发现协议所确定的放置信息是否准确的能力;并且当确定放置信息不准确时,重新初始化发现协议或以其它方式确定正确放置信息。

在本发明的另一个实施例中,提供了一种用于将计算机数据存储于存储网络上的方法,该存储网络包括一个或多个存储节点,每个节点包括计算机处理器和一个或多个存储装置并且每个存储装置包括存储划分为一个或多个卷的数据的计算机可读介质,该一个或多个卷对于网络上的存储节点和非存储节点可见;该方法包括:经由计算机可执行指令实现当由处理器执行时定义提供存储服务的多个行为者;其中每个行为者定义卷的至少一者的虚拟表示并且充当至少一个数据存储装置的每一者的排他性或非排他性控制器;经由多个行为者的至少一者根据至少一个策略将每个卷的数据放置于存储装置上。

在本方法的一个方面,至少一个策略包括下述之一:对延迟目标、每秒的输入/输出操作和/或带宽进行优化。

在本发明的另一个方面,该方法还包括部分地基于访问存储装置的每一者的卷的一个或多个用户的体验而确定每个存储装置的性能特征。

在本发明的另一个方面,该方法还包括基于每个卷的延迟目标和可用于卷的每个存储装置的所确定延迟特征而将每个卷的数据放置于存储装置上。

在本发明的另一个方面,该方法还包括当存储复制数据时违背对于每个卷所确定的最大延迟目标,前提是复制数据的拷贝可用于维持延迟目标。

在本发明的另一个方面,软件服务提供每个节点之间一致的每个卷的名称,其中卷对于应用程序可见。

在本发明的另一个方面,用于访问或存储存储装置的每一者上的数据所需的放置信息部分地可用于存储服务并且通过发现协议来部分地确定。

在本发明的另一个方面,软件服务提供用于确定通过发现协议所确定的放置信息是否准确的能力;并且当确定放置信息不准确时,重新初始化发现协议或以其它方式确定正确放置信息。

在本发明的另一个实施例中,提供了一种存储系统,该存储系统包括附接存储节点的一个或多个网络上的多个存储装置,其中数据划分为一个或多个卷,其中每个卷对于网络上的子组的存储节点和非存储节点上的应用程序可见,其中每个卷的数据放置于存储装置上以维持对于每个卷所确定的最大延迟目标。

在本发明的一个方面,可参与卷中的每个存储装置的延迟特征以与卷的一个或多个用户的体验相关联的方式来确定(测量或得到)。

在本发明的另一个方面,存储服务对附接节点的网络上的每个可见卷进行操作,并且存储服务决定或被告知如何基于关于卷所声明的延迟目标和可用于卷的每个存储装置的已知或声明或计算延迟特征而将卷的数据放置于可用存储装置上。

在本发明的另一个方面,多个存储服务合并成单个存储服务,该单个存储服务对多个可见卷做出决策。

在本发明的另一个方面,复制数据可放置于违背对于每个卷所确定的最大延迟目标的存储装置上,因为复制数据的其它拷贝可用于维持延迟目标。

在本发明的另一个方面,每个可见卷的名称在节点之间为一致的,其中该卷对于应用程序可见。

在本发明的另一个方面,存储装置可自身为独立存储系统。

在本发明的另一个方面,用于访问或存储数据所需的放置信息仅部分地可用于存储服务,并且该信息必须通过发现协议来确定。

在本发明的另一个方面,通过发现协议所确定的放置信息在后续使用时可为不正确的,并且由于实现和使用正确放置信息的机制可为不正确的。

根据本发明的另一个实施例,提供了一种存储系统,该存储系统包括附接存储节点的一个或多个网络上的多个存储装置,其中数据划分为一个或多个卷,其中每个存储装置由行为者表示,该行为者对一个或多个卷提供存储服务,该一个或多个卷可具有其存储于(即,可使用)所述存储装置上的数据。

在第二实施例的一个方面,多个存储服务合并成单个存储服务,该单个存储服务对多个存储装置起作用。

在第二实施例的另一个方面,每个卷的名称在节点之间为一致的,其中该卷对于应用程序可见。

在第二实施例的另一个方面,每个存储装置可自身为独立存储系统。

相对于方法所描述的方面同样适用于那些相对于系统所描述的方面,反之亦然。

附图简述

本发明示于附图的图中,该附图旨在为示例性的和非限制性的,其中类似标记旨在是指类似或对应部分,其中:

图1和图2为根据本发明的一个实施例的以应用程序为中心存储系统的示意性系统图。

具体实施方式

出于图示的简便性和清晰性,在考虑适当的情况下,附图标记在图之间可重复以指示对应或相似元件或步骤。此外,阐述了大量具体细节,以提供对本文所描述的示例性实施例的透彻理解。然而,本领域的技术人员将理解,本文所描述的实施例可在无这些具体细节的情况下来实践。在其它情况中,尚未对公知的方法、程序和部件进行详细描述,以免模糊本文大体所描述的实施例。

此外,本说明书不视为以任何方式限制本文所描述的实施例的范围,而是视为仅描述所描述的各种实施例的实施方式。

本文所描述的系统和方法的实施例可在硬件或软件或两者组合中来实现。这些实施例可在计算机程序中来实现,该计算机程序在可编程计算机上执行,每个计算机包括至少一个处理器、数据存储系统(包括易失性存储器或非易失性存储或其它数据存储元件或其组合)和至少一个通信接口。程序代码应用于输入数据以执行本文所描述的功能和以生成输出信息。输出信息以已知方式应用于一个或多个输出装置。

每个程序可以高级程序或面向对象编程或脚本语言或两者来实现以与计算机系统通信。然而,另选地,如果需要,程序可以汇编或机器语言来实现。语言可为编译或解释语言。每个此类计算机程序可存储于存储介质或装置(例如,ROM、磁盘、光盘)上,通过通用或专用可编程计算机可读取,以用于当存储介质或装置由计算机读取来执行本文所描述的程序时配置和操作该计算机。系统的实施例还可考虑实现为配置有计算机程序的非暂态计算机可读存储介质,其中这样配置的存储介质致使计算机以特殊和预定方式进行操作来执行本文所描述的功能。

此外,所描述实施例的系统和方法能够分布于计算机程序产品中,该计算机程序产品包括承载用于一个或多个处理器的计算机可用指令的物理非暂态计算机可读介质。该介质可以各种形式来提供,包括一种或多种软盘、压缩盘、磁带、芯片、磁性和电子存储介质,等等。非暂态计算机可读介质包括所有计算机可读介质,暂态传播信号除外。术语非暂态非旨在排除计算机可读介质(诸如易失性存储器或RAM),其中存储其上的数据仅暂时存储。计算机可用指令还可为各种形式,包括编译代码和非编译代码。

还应当指出的是,如本文所用,词语和/或旨在表示包括性或。也就是说,例如,X和/或Y旨在意指X或Y或两者。作为另一个实例,X、Y和/或Z旨在意指X或Y或Z或其任何组合。

关键术语的定义

虽然本说明书中所用的大多数术语将具有其一般和常用意义(如网络和/或存储计算机系统的领域中所用),但是出于本发明的额外清晰性和理解,某些关键术语定义如下。

存储节点——存储节点包括对网络中的一个或多个存储装置提供访问的任何服务器或计算机系统。

非存储节点——非存储节点为网络服务器,该网络服务器具有作为其主要功能的任务而非数据存储。

以应用程序为中心——以应用程序为中心在本说明书的语境中定义为基于访问数据的应用程序的要求而做出数据存储决策和执行数据存储功能的能力,或以其它方式对相应应用程序的数据存储功能进行优化的能力。

行为者——行为者为存储于一个或多个存储装置上的卷的虚拟或软件表示,其也充当存储装置的软件实现控制器。其可或不可存储于存储装置自身上或在存储装置自身上实现。

优选实施例

根据本发明的以应用程序为中心分布式存储系统管理大量存储装置上的数据存储。其可用于将多个存储装置的现有系统合并成一个存储服务,并且可吸收在随后时间所添加的额外存储装置。系统自动地响应于用户设定以调整和连续监测数据存储来满足用户的运算和/或数据存储要求。这些要求广义地定义一种策略,存储关于该策略在本发明的各种实施例中进行优化。策略可对于目标延迟或IOPS(每秒的输入/输出)或带宽进行优化。最小和最大限值用于装置选择和调节。例如,系统可以最大IOPS进行调节并且可将数据放置于存储装置上,其相比于最小IOPS较慢。

分布模型可类似于运算层采用的超聚合和网规模架构。这可通过将代理部署于物理服务器或虚拟机器内来实现,该物理服务器或虚拟机器可扫描所有可用存储资源。存储管理应包括分派能力、性能水平和数据保护要求。根据每个卷的该策略信息,本发明将数据自动地放置于预期提供所需服务的存储装置中,并且根据需要监测和移动或拷贝数据以维持所需服务。由每个行为者在其局部语境中已做出此类监测和控制决策的架构允许本发明进行缩放而无架构限制。该架构允许存储策略在无共享模型中对整个存储系统进行缩放。

以应用程序为中心分布式存储系统为一种更有效存储系统,该存储系统可以符合用户定义的性能目标的方式利用不同硬件配置自动地管理多个存储服务并使之标准化。

以应用程序为中心分布式存储系统通过具有自动地调整至在环境中发生的条件的存储可改善数据存储自动化。(例如,将更多闪存分配至数据组,从而看出读取和/或写入活动的增加。或基于活动而增加数据保护——连续访问的一些数据可连续地备份)其还可递送编排:网络和存储基础结构被预先编程以递送期望服务水平。QoS(服务质量)为推动、允许用户设定服务级别并且然后随着周围环境改变而调整以维持那些服务水平的机制。

图1为用于将数据存储于一组分布式存储装置上的具体以应用程序为中心分布式存储系统100的示意图,该组分布式存储装置包括一个或多个存储装置102、计算机网络104、存储节点106、计算机系统108、行为者110。图2为图1的一般化型式,示出了多个前述元件。图2中的系统为可缩放的,并且可包括实际上和经济上可行的多个每种元件。在实施中,行为者110为卷112的虚拟表示,卷112表示具体应用程序的虚拟化卷并且通过管理存储装置的每一者的一部分充当控制器,其中基本卷112存储于存储装置中。行为者110可在计算机系统108中执行。计算机系统108一般可为网络服务器,用户计算机通过该网络服务器访问网络。

系统100使用分布式元数据模型和分权决策(每个卷112由行为者110表示,行为者110了解参与卷112的存储装置102),并且与那些卷的其它行为者110通信,并且做出关于其它行为者(110)和其所负责的数据的状态的独立询问和决策。具体地,计算机系统108(或由系统108所表示的多个计算机系统)包括一组行为者108,其中每个个体行为者为卷112的虚拟表示。这些行为者彼此通信,使得每个行为者感知用于数据的特定卷的其它行为者(进而,其它存储装置)。

存储装置102可为能够存储数据的任何硬件装置,包括硬盘驱动器、闪存驱动器、固态驱动器、存储级存储器,等等。存储装置102还可为基于云的存储装置或对于特定存储节点可见的任何其它存储服务。系统100可包括不同类型的存储装置102的组合。每个存储装置102可具有唯一技术规格,包括存储容量、读/写速度、寿命等。每个存储装置102可具有唯一已知延迟特征,或所述延迟特征可确定。额外存储装置102可在任何时间添加至系统100,并且系统100可维持延迟目标。

通信网络104可大体上为任何公共或私人网络(有线的或无线的),并且可大体上包括一个或多个网络,该一个或多个网络可能够有利于自身之间和系统100的各个部分之间的通信。

存储节点106可为任何电子装置,该电子装置附接至能够接收或发送数据的通信网络104。存储节点106可为标准服务器,该标准服务器在其后具有至少一个存储节点。在示例性实施例中,存储节点106为物理或虚拟Linux服务器。

计算机用户系统108可为一个或多个计算机的组合,该一个或多个计算机运行需要访问所存储数字数据的软件应用程序。任何计算机可具有多个物理和逻辑部件,诸如处理器、存储器、输入/输出接口、网络连接等。系统108可包括中央计算机,该中央计算机可通过仪表板界面控制系统100的操作。

用户系统108的一个或多个计算机可运行存储服务软件。这为其中仪表板将运行并且设定将确定的情况。

用户系统108可包括能够使用软件根据需要来调整期望存储系统要求的一个或多个人操作者,诸如IT员工。操作者(管理者)可通过仪表板定义各个应用程序或应用程序组的QoS策略。QoS可包括性能(IOPS、延迟、带宽)、容量,和数据保护(例如,复制、快照)水平。

行为者110可为部分地表示存储装置102的软件模块。行为者110可保持追踪相关存储装置102所参与的卷。行为者110可与相关卷的其它行为者通信。行为者110可与其它相关行为者110一起关于其它行为者和数据的状态做出询问和决策。

行为者110可确定如何基于卷的延迟目标和存储装置的延迟特征而将卷的数据放置于存储装置102上。该确定以行为者水平做出并发送,而无需感知行为者110的存在或动作的具体用户应用程序。

每个行为者110基于其距自身的延迟距离和如何相关于卷的延迟策略还了解每个卷的策略并且促进或降级特定卷的行为者110之间的数据(包括自身)。出于更加注重,如由行为者所表示和对于行为者已知的数据的卷为虚拟化卷,该虚拟化卷可物理上存在于个体存储装置102的一者或多者中。卷定义的该虚拟化允许行为者在其中数据物理地存储同时将卷定义维持于应用程序水平的情况下进行调控,从而产生以应用程序为中心数据存储系统。应用程序参见卷的一致定义和映射,甚至在其中数据自身可在不同具体硬件存储装置之间移动或调控的情况下。

一起起作用的多个行为者110形成存储服务,由此每个行为者定义其相应卷的存储服务内的虚拟表示并且充当该数据存储装置的控制器。术语控制器用于指代行为者的功能,该行为者管理存储装置的每一者的一部分,其中它们所表示的卷具有重要性。软件服务部分地基于访问存储装置的每一者的卷的一个或多个用户的体验而确定每个存储装置的性能特征。这可通过表征存储装置的空闲性能和/或通过存储装置性能在相应应用程序中的实时测量来实现。

行为者110可理解为提供卷管理器的功能性。在本文中,存在有在卷的每个访问点处运行的行为者或卷管理器。访问点为其中存储服务暴露的位置。例如,传统块装置卷可同时暴露于三个节点上,所以将存在均彼此通信的运行该卷的三个行为者。行为者之间的通信可利用具有已知协议的TCP会话来实现。行为者均必须彼此告知以确保分配和数据迁移/移动的一致性。此外,行为者在卷之内和在卷之外彼此竞争存储资源。行为者单个地管理代表其应用程序的QoS(即,通过局部访问点告知卷),但是当在这些限制内彼此之间的通信形成架构和将系统放大的机会(因为复杂性不随着系统尺寸而增加)时,其对于每个卷增加了参与该卷的存储装置的数量。

存储服务基于每个卷的性能目标和可用于卷的每个存储装置的所确定性能特征而实现将每个卷的数据放置于存储装置上。

存储服务允许将复制数据放置于违背对于每个卷所确定的最大延迟目标的存储装置上,前提是复制数据的拷贝可用于维持延迟目标。这允许存储服务削弱数据复制应用程序或在其它应用程序中备份指令以优化将该数据用于正常操作的应用程序的延迟目标。

因此,整个系统100的行为为多个行为者110的集中行为,行为者110基于其中访问数据情况(访问的性质(读取或写入)、性能策略,和每个行为者110对其对应行为者110的状态的了解)对数据的放置做出独立决策。任何行为者110用于做出放置或检索决策的信息在决策时或其实现时可为不正确的,并且本发明设计成假定这点和自身正确。行为者彼此始终通信并且实现故障处理机制以确保一致性。在其最简单实施方式中,如果行为者漏失,那么其数据视为丢失。然而,还可设想,可对已漏失的行为者的数据进行重新同步。

如本文所描述的行为者110的实施方式产生存储虚拟化,该存储虚拟化响应于系统中的物理存储装置的实时参数和特征,始终不需要访问数据的应用程序的适配。应用程序将虚拟化存储系统视为区别于物理卷的虚拟卷,即使实际数据存储可散布于如上文所描述的多个存储装置中。

系统100软件可具有多个自动过程和能力:

·将活动数据放置于高性能介质以用于快速访问和将陈旧数据放置于不昂贵容量介质上的能力。

·在违背QoS水平的情况下生成警示,并且可自动地做出调整以达到所允许水平。调整一般包括将数据移动至符合QoS要求的存储装置。另选地,在数据保护的情况下,调整可包括拷贝数据。

·将数据划分为一个或多个卷(有名称的数据集合)并且确定其中每个卷可放置于存储装置102中的一者或多者上的位置。该确定可利用(卷的)计算、预设性能目标和每个存储装置102的已知性能特征来做出。

●卷可以用于维持对于每个卷所确定的最大性能目标的方式放置于存储装置上。

·每个卷可具有名称或标识符,使得每个可见卷在其中该卷对于应用程序可见的节点之间为一致的。

·利用发现协议来确定数据放置信息,在无该发现协议的情况下,该放置信息仅部分地可用于存储服务。软件服务提供用于确定通过发现协议所确定的放置信息是否准确的能力;并且当确定放置信息不准确时,重新初始化发现协议或以其它方式确定正确放置信息。

·检测新存储装置102的添加并且将它们自动地用于(可能受策略约束的影响)现有卷和新卷,这可产生移动至新存储装置的卷数据。

·管理复制数据,包括以违背性能目标的方式将复制数据放置于存储装置102上。

系统100包括数据保护机制(标称地,复制),该数据保护机制对于数据的每次写入进行增强,但是因为放置决策基于满足性能策略,所以放置可为非对称的:由于对数据的完全保护(远程节点106的肯定写入确认),仅需要一个高性能位置来满足高性能读取请求,并且需要多个高性能位置来满足高性能写入请求。

即使系统110的概念设计将独立行为者110用于每个卷,但是在实际实施方式中,这些可结合成单个过程或少于所表示卷的数量的多个过程,而无需改变本发明的实质。

性能设定可包括将活动数据放置于运算附近的性能介质上并且将陈旧数据放置于适当容量介质上。

QoS设定可包括最小值/最大值、目标、IOPS的突发脉冲串、延迟和带宽,以及数据保护策略和数据放置策略。(各种工作负荷上的延迟、带宽和性能的实时设定和增强。)

容量管理可包括无固定容量的情况下的密集配置(thick provisioning)和弹性存储。

如本文所描述的本发明的实施例提供了相比于现有技术卷定义或LUN的较深粒度。该解决方案关于基于QoS参数的卷存储定义做出决策。QoS驱动数据移动决策以可为十分小的范围大小粒度做出,并且数据移动的效应改变存储装置,数据物理地放置于不同卷上,而非将数据移动至不同卷。

例如,如果请求从第一水平至第二水平的移动,那么对数据组的闪存分配显然增加。随后,如果应用程序的优先级上升,那么闪存分配可实际上大于硬盘分配,从而几乎消除从非闪存介质的访问。另外,如果应用程序的QoS的升级再一次发生,那么其数据组100%从闪存进行分配,从而消除任何非闪存介质访问。

层不限于闪存和硬盘。例如,DRAM可作为另一存储层进行访问,该另一存储层可分配至这些各种类型的QoS策略,从而允许甚至更大存储性能优先化。

QoS也不限于性能。另一QoS参数可关于数据保护水平进行设定。对于业务关键数据,QoS设定可要求将数据非同步地拷贝至第二独立存储系统,从而形成实时备份。对于任务关键数据,QoS设定可要求将数据同步拷贝至第二系统。

另一数据保护能力为以数量或组限制参与卷的存储装置,该数据保护能力对于用于其它卷的存储装置组具有特定关系,以限制特定存储装置或具有故障存储装置的计算机的总效应。例如,在基于散列表的分布式存储系统中,因为所有卷将数据保持于所有节点上,所以系统之外的多一个故障设计成将几乎必然地破坏该系统中的所有卷上的数据,然而在本发明中,甚至无这方面的特殊策略的情况下,所破坏的数据仅为某些卷保持于故障装置上的数据。

该机制的复杂性通过行为者之间的协调可随着时间而改善,这些行为者具有对用于卷的存储装置的选择。

这总结了本发明的各种优选实施例的描述,这些优选实施例并非由所描述的具体实施例来限制。相反,本发明仅由下述权利要求书限制。

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