用于数据存储服务的方法和装置与流程

文档序号:11285637阅读:199来源:国知局
用于数据存储服务的方法和装置与流程

本公开的实施例涉及存储系统,并且更具体地涉及用于提供数据存储功能/服务的方法和装置。



背景技术:

在数据存储领域,软件定义的存储器越来越多,并且存储功能/服务逐渐被虚拟化。例如,一些硬件装置将被移植到到纯软件解决方案,并且例如被安装在x86机器中。

emctm是顶级存储解决方案提供者之一,并且拥有各种存储技术,例如:存储内置的数据复制、rpa、以及twinstrata,maginatics/cloudboost,spinning等。另外,emctm也已经对软件定义的存储器的解决方案做了很多尝试。

但是,目前尚没有灵活而统一的解决方案,使得用户能够对提供的存储服务进行定制并且使得定制能够被部分地重用于另一用户。

在本公开的实施例中,提供了方法和装置,以解决以上问题中的至少一些问题。



技术实现要素:

本公开的实施例提出了用于在存储系统中提供数据存储服务的方法和装置。下面给出了对各实施例的简要概述,以提供对各种实施例的一些方面的基本理解。该概述不旨在标识关键元素的要点或描述各种实施例的范围。其唯一目的在于以简化形式呈现一些概念,作为对后述更具体描述的前序。

本公开的第一方面提供了一种用于数据存储服务的方法,该方 法包括:从用户接收存储服务模板,所述存储服务模板指定用于所述用户的存储服务策略、以及要运行的服务实例;以及按照所述存储服务模板提供所述存储服务;其中,所述存储服务策略定义要对所述用户的数据执行的存储功能。

在一个实施例中,所述存储服务模板可以通过从预定的存储服务策略集合中指示至少一个存储服务策略来指定用于所述用户的存储服务策略。

在另一实施例中,存储服务策略可以利用工作流引擎来定义,其中所述工作流引擎中的每个任务对应于一个存储功能节点或者一种存储服务。

在又一实施例中,所述存储服务模板还可以指定用于提供所述存储服务的网络。

在一个实施例中,存储服务策略还可以定义所述存储功能的执行模块,和/或用于执行所述存储功能的参数。在另一实施例中,述存储功能的执行模块包括虚拟机或者容器镜像。

在进一步的实施例中,用于执行所述存储功能的参数可以包括所述存储功能的执行顺序和/或触发条件。

本公开的第二方面提供了一种用于数据存储服务的装置,该装置包括:接收单元,被配置为从用户接收存储服务模板,所述存储服务模板指定用于所述用户的存储服务策略、以及要运行的服务实例;以及执行单元,被配置为按照所述存储服务模板提供所述存储服务;其中,所述存储服务策略定义要对所述用户的数据执行的存储功能。

本公开的第三方面提供了一种装置,其包括至少一个处理器以及包括计算机程序代码的至少一个存储器,其中所述至少一个存储器和所述计算机程序代码被配置为:利用所述至少一个处理器,促使所述装置执行根据本公开的第一方面所述的方法。

本公开的第四方面提供了一种包括指令的计算机程序,所述指令在至少一个处理器中执行时,促使所述至少一个处理器执行根据 本公开的第一方面所述的方法。

根据本公开的实施例的方法或装置,用户能够灵活地定制需要的存储功能,并且避免用户的繁琐的手动操作。另外,本公开的实施例提供了对存储功能进行全局编排的统一的解决方案。

尽管在附图中通过示例的方式示出了特定的实施例,然而,应当理解,本文的具体实施例的描述不意在将实施例限制为所公开的具体形式。

附图说明

从下文的公开内容和权利要求中,本公开的目标、优点和其他特征将变得更加明显。这里仅出于示例的目的,参考附图来给出优选实施例的非限制性描述,在附图中:

图1中示出根据本公开的实施例的将存储功能/服务链接的示意图;

图2示出了根据本公开的实施例的用于数据存储服务的示例方法的流程;

图3示出示例存储服务模板所定义的处理流程;

图4示出了根据本公开的实施例的用于数据存储服务的示例装置的示意性结构图;以及

图5示出了一个可以用来实施本公开的实施例的设备的示意性框图。

具体实施方式

在以下描述中,出于说明的目的而阐述许多细节。然而,本领域普通技术人员将认识到可以在不使用这些具体细节的情况下实现本公开的实施例。因此,本公开不旨在于受限于所示实施例、而是将被赋予与本文描述的原理和特征一致的最宽的范围。

应当理解,术语“第一”、“第二”等仅被用来将一个元素与另一个元素区分开来。而实际上第一元素也能够被称为第二元素,反 之亦然。另外还应当理解“包括”,“包含”仅被用来说明所陈述的特征、元素、功能或者部件的存在,然而并不排除存在一个或者多个其他的特征、元素、功能或者部件。

如前所述,软件定义的存储器是当前的一种发展趋势。在这方面目前已经进行了很多尝试。例如emctm进行了以下研究:

-对现有存储技术进行虚拟化:基于类似虚拟应用(vapps)的技术,把存储功能放入能够在x86机器上运行的虚拟机上;

-对现有存储技术容器化:将存储功能封装成容器,用于快速部署、运行和扩展。例如,emctm已经发布了具有复制功能vvnx、以及vrpa的虚拟机,并且他们能够被包装成容器或者intelclearlinuxvm或者vmwarephoton。其中intelclearlinuxvm是定制的linux,具有~200ms的启动时间和20mb的内存占用。

然而,应该注意的是,类似于大多数的微服务架构,在当前的存储虚拟化的解决方案中,需要解决的一个问题是,如何确定被封装的存储功能应该具有的粒度。太大的粒度将使得该功能难以重用,而太小的粒度则需要对这些存储功能/服务的强大而复杂的编排解决方案。

为了解决以上问题中的至少部分问题,本申请的发明人提出需要从全局的角度对存储功能/服务进行编排,并且在本公开的实施例中提出了通过按照预定的规则将存储功能/服务进行链接以用于满足各种存储服务需求的方法和装置。

在图1中示出根据本公开的实施例的用于将存储功能/服务链接的示意图。在图中仅示例性地呈现了删除重复101、压缩102、加密103三个存储功能,但是本领域技术人员能够理解,本公开的实施例的方法和装置能够用来链接更多或者更少的或者其他的存储功能。如图1所示,根据本公开的实施例,多个存储功能能够根据需要被按照特定的顺序和条件链接在一起,组成链接的存储功能110。用户的数据120被该链接的存储功能110处理,得到用户期望的处理数据130。

以下参照图2介绍根据本公开的实施例的用于数据存储服务的示例方法200的流程。方法200可以由例如用于数据储存服务的控制器来执行。如图2所示,该方法200包括:在块s201,从用户接收存储服务模板。该存储服务模板指定用于所述用户的存储服务策略、以及要运行的服务实例。在块s202中,按照所述存储服务模板提供所述存储服务。根据本公开的各个实施方式,存储服务策略定义要对用户的数据执行的存储功能。

在一个实施例中,存储服务模板还可以包括该模板的名称和/或标识符(id)。

在一个实施例中,在块s201中,可以以文件、指令或者消息的形式从用户接收存储服务模板。本公开的实施例不限于存储服务模板的任何具体形式。

在另一实施例中,该存储服务模板通过从预定的存储服务策略集合中指示至少一个存储服务策略来指定用于所述用户的存储服务策略。

可选地,在又一实施例中,存储服务策略还可以定义所述存储功能的执行模块,和/或用于执行所述存储功能的参数。在一个实施例中,存储功能的执行模块可以包括但不限于虚拟机或者容器镜像。在另一实施例中,存储功能的执行模块也可以在存储服务模板而不是每个存储服务策略中指定。

在一个示例中,存储服务策略集合中的每个存储服务策略可以指定特定的存储功能的链接以及执行条件(或者触发器),因此通过在存储服务模板中指定合适的存储服务策略的索引或者参考标识,即可以执行对应的存储服务策略,实现用户期望的存储功能。

另外,公开的实施例并不限于以任何特定的格式/形式来定义存储服务策略。仅作为示例,该存储服务策略可以利用工作流引擎来定义。工作流引擎可以具有以下概念,即,将资源系统地组织到进程中,该进程改变物质、提供服务或者处理信息。根据本公开的实施例,工作流引擎中的每个任务可以对应于一个存储功能节点或者 一种存储服务。在一个实施例中,工作流中的输入数据可以对应为完成存储处理步骤所需的信息和/或物质和/或能量。在另一实施例中,工作流中的任务可以对应为存储处理的准则和算法。这些准则将引起资源消耗,该资源由托管的虚拟机或者容器提供。在另一实施例中,工作流的输出数据可以对应为由处理步骤产生的信息和/或物质和/或能量,并且其被提供作为下游步骤的输入。只有在一个之前的存储功能/服务的输出等于随后的部件的强制性输入要求时,前后两个存储功能/服务才能够被链接/插入在一起。如本领域技术人员能够理解的,利用工作流引擎来定义存储服务策略并不是唯一的选项。

在一个实施例中,存储服务模板还可以指定用于提供所述存储服务的网络。例如,存储服务模板可以指定每个虚拟机或者容器镜像所在的网络的标识符、ip地址和类型中的一项或者多项。网络类型在存储功能/服务连接中非常重要。大部分存储服务是数据要经过的数据平面服务。根据网络类型不同,数据可以被不同的隧道加密。

在另一实施例中,在存储服务策略中定义的用于执行存储功能的参数可以包括,但不限于,所述存储功能的执行顺序和/或触发条件。

根据本公开的实施例的方法,各个功能/服务(包括文件和块,例如复制、恢复、快照、或者压缩/解压缩、加密/解密等)可以被看作功能节点,并且各节点可以由服务虚拟机或者容器提供以动态地运行单个或者多个服务。本公开的实施例的方法使得能够将多个节点以恰当的顺序链接以用于完整的工作。

如上所述,存储服务模板是组成链接存储系统的主要部件,利用该存储服务模板,用户定义数据处理如何工作。以下出于说明而非限制的目的,提供存储服务模板和存储服务策略的示例。本领域技术人员能够理解,在一些实施例中,可以使用与所提供的示例不同的实施方式。作为示例,存储服务模板可以具有诸如xml,json,yaml,ini格式等不同的格式。以下以yaml格式为例来说明。

在一个实施例中,预定了以下四个存储服务策略:

-流读出:其从给定的套接口(sock)读出数据。此为仅输出策略,这意味着其不能在另一策略之后;

-加密:该策略将启动虚拟机来进行数据加密。其能够接受数据输入,并且在加密后向另一策略输出;

-如果-条件:该策略接受参数集合以验证数据输入,并且根据判断条件将数据重新导向到不同的策略;

-备份:该策略将接收数据并保持该数据。这是仅输入策略,这意味着其后没有另一策略。

如图3所示,在该实施例中,存储服务模板可以定义以下处理流程300:

-在块301运行流读出策略,来启动两个虚拟机(vm)以从给定的套接字读出税收数据;

-在块302运行如果-条件策略,以检查纳税人的年收入是否超过12万;

-如果是,则在块303运行加密策略来对该数据加密;以及

–在块304,通过运行备份策略将经加密的数据保持到备份存储器。

作为示例而非限制,为了实现该目的,存储服务模板可以表示如下:

以下参照图4来介绍根据本公开的实施例的装置400的示意性结构。装置400可以是用于数据存储服务的控制器或者其一部分。装置400可以执行参考图2该的方法200,但是不限于执行该方法200。同样,该方法200可以由装置400执行,但是不限于由装置400执行。例如方法200的至少一些操作可以由其它的装置来执行。

如图4所示,装置400包括接收单元401,被配置为从用户接收存储服务模板,所述存储服务模板指定用于所述用户的存储服务策略、以及要运行的服务实例;执行单元402,被配置为被配置为按照所述存储服务模板提供所述存储服务;其中,所述存储服务策略定义要对所述用户的数据执行的存储功能。

在一个实施例中,该存储服务模板中还可以包括该存储服务模板的名称和/或标识符(id)。

在另一个实施例中,该存储服务模板可以通过从预定的存储服务策略集合中指示至少一个存储服务策略来指定用于所述用户的存储服务策略。

在又一实施例中,存储服务策略可以是利用工作流引擎来定义的,其中所述工作流引擎中的每个任务对应于一个存储功能节点或者一种存储服务。在一个实施例中,工作流中的输入数据可以对应为完成存储处理步骤所需的信息和/或物质和/或能量。在另一实施例中,工作流中的任务可以对应为存储处理的准则和算法。这些准则将引起资源消耗,该资源由托管的虚拟机或者容器提供。在另一实施例中,工作流的输出数据可以对应为由处理步骤产生的信息和/或物质和/或能量,并且其被提供作为下游步骤的输入。只有在一个之前的存储功能/服务的输出等于随后的部件的强制性输入要求时,前后两个存储功能/服务才能够被链接/插入在一起。如本领域技术人员能够理解的,利用工作流引擎来定义存储服务策略并不是唯一的选项。

在一个实施例中,所述存储服务模板还可以指定用于提供所述 存储服务的网络。例如存储服务模板可以指定每个虚拟机或者容器镜像所在的网络的类型、ip地址、标识符中的至少一项。

可选地,在又一实施例中,存储服务策略还可以定义所述存储功能的执行模块,和/或用于执行所述存储功能的参数。在一个实施例中,存储功能的执行模块可以包括但不限于虚拟机或者容器镜像。在另一实施例中,存储功能的执行模块也可以在存储服务模板而不是每个存储服务策略中指定。

在又一实施例中,存储服务策略定义的用于执行所述存储功能的参数可以包括,但不限于,所述存储功能的执行顺序和/或触发条件。

如本领域技术人员能够理解的,装置400还可以包括图4中未示出的其它单元;并且/或者,在一些实施例中,图4中的某些单元可以被省略。

在提出本公开的实施例的方法和装置之前,不存在对存储器功能/服务进行编排的有效方式。而根据本公开的实施例的方法和装置,能够灵活地链接多个存储功能完成期望的处理。

本领域技术人员将容易地认识到,上述各种方法中的块或者步骤可以通过编程的计算机来执行。在本公开中,一些实施例还意在涵盖一种包括指令的计算机程序,该指令在至少一个处理器中执行时,促使该至少一个处理器执行方法200中的任一方法。在本公开中,一些实施例还意在涵盖程序存储系统,例如,数字数据存储介质,这是机器或计算机可读的并且编码机器可执行或计算机可执行的指令程序,其中,该指令执行上述方法200中的一些或所有步骤。程序存储系统可以是,例如,数字存储器、诸如磁盘和磁带的磁存储介质、硬盘驱动器或光学可读数字数据存储介质。该实施例还意在涵盖编程为执行该上述方法的步骤的计算机。一些实施例还意在涵盖一种装置,该装置包括至少一个处理器;以及至少一个包括计算机程序代码的存储器,其中该至少一个存储器和该计算机程序代码被配置为:与该至少一个处理器一起,促使该装置执行方法200。

图5示出了一个可以用来实施本公开的实施例的设备500的示意性框图。如图所示,设备500包括处理单元(例如但不限于,cpu)501,其可以根据存储在只读存储器(rom)502中的计算机程序指令、或者来自存储单元508的计算机程序指令(例如,从存储单元508加载到随机访问存储器(ram)503中的计算机程序指令),来执行各种适当的动作和处理。在ram503中,还可存储设备500的操作所需的各种程序和数据。处理单元501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

上文所描述的各个过程和处理,例如方法200,可由处理单元501执行。例如,在一些实施例中,方法200可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序被加载到ram503并由处理单元501执行时,可以执行上文描述的方法200的一个或多个步骤。

因此,本公开的解决方案可以利用各种方式来提供。例如,在一些实施例中,在附图中示出的装置的各种元件的功能、或者方法的步骤,可以通过使用软件、专用硬件以及与适当软件相关联的能够执行软件的硬件、或者固件、或者其结合来提供。当由处理器提供时,该功能可以由单个专用处理器、由单个共享处理器或由多个单独的处理器来提供。此外,术语“处理器”可以包括但不限于,数字信号处理器(dsp)硬件、网络处理器、专用集成电路(asic)、 现场可编程门阵列(fpga),用于存储软件的只读存储器(rom)、随机存取存储器(ram)和非易失性存储装置。还可以包括其他常规和/或定制的硬件。

本领域技术人员应当理解,说明书和附图仅仅说明本公开的实施例的原理。因此,应当理解,本领域的技术人员将能够设计出各种布置,虽然这里没有明确地描述或示出,但是该布置体现本公开的实施例的原理并且被包括在本公开的实施例的精神和范围内。此外,这里阐述的所有示例主要旨在明确仅用于教学目的,以帮助读者理解本公开的实施例的原理和发明人贡献的用于促进本领域的概念,并且应被解释为不限于这些具体阐释的示例和条件。而且,这里阐述本公开的实施例的原理、方面和实施例的所有阐述及其具体示例也意在包含其等同物。

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