CN105074660B - 部署数据‑路径相关插件 - Google Patents

部署数据‑路径相关插件 Download PDF

Info

Publication number
CN105074660B
CN105074660B CN201480016992.5A CN201480016992A CN105074660B CN 105074660 B CN105074660 B CN 105074660B CN 201480016992 A CN201480016992 A CN 201480016992A CN 105074660 B CN105074660 B CN 105074660B
Authority
CN
China
Prior art keywords
data
plug
unit
path
checking
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480016992.5A
Other languages
English (en)
Other versions
CN105074660A (zh
Inventor
R·戈登
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STORONE Ltd
Original Assignee
STORONE Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STORONE Ltd filed Critical STORONE Ltd
Publication of CN105074660A publication Critical patent/CN105074660A/zh
Application granted granted Critical
Publication of CN105074660B publication Critical patent/CN105074660B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)

Abstract

一种用于为存储系统的逻辑存储实体部署数据‑路径相关插件的方法,该方法包括为逻辑存储实体部署数据‑路径相关插件,其中所述部署包括创建包含插件的数据‑路径规范,并且其中包含插件的数据‑路径规范包括数据‑路径相关插件的操作;及创建验证数据路径规范,其中验证数据‑路径规范不包括数据‑路径相关插件的操作,并且其中在具有验证数据‑路径规范的验证数据路径中执行的任务生成使得能够对由该任务在具有包含插件的数据‑路径规范的包含插件的数据‑路径中执行而生成的给定数据进行确认的验证数据。

Description

部署数据-路径相关插件
技术领域
本发明涉及存储系统数据-路径相关插件并且尤其涉及用于部署这种数据-路径相关插件的系统和方法。
背景技术
随着网络的容量和速度的增长,分布式存储系统在过去的十年里快速发展。随着网络从局域网(LAN)扩展至全球广域网(WAN),业务正在变得更全球化分布,从而导致对分布式存储系统的需求,以提供再在远程地理位置上的数据存储和访问。在一些情况下,各种实体寻求开发各种分布式存储系统数据-路径相关插件并且把这种数据-路径相关插件结合到分布式存储系统中的能力。但是,在分布式存储系统中结合这种数据-路径相关插件会造成非预期或不想要的行为,例如,数据破坏、降级的性能,等等。因此,在本领域存在对于在分布式数据存储系统实现数据-路径相关插件的新方法和系统的需求。
作为背景被认为与目前公开的主题相关的现有技术参考文献在以下列出。本文对这些参考文献的承认不应当被认为意味着这些以任何方式与目前公开的主题的专利性相关。
标题为“Apparatus and Method for a Distributed Storage GlobalDatabase”的美国专利公开No.2009/0070337涉及“一种用于管理数据元素分布的地理上分布的存储系统,其中对给定数据元素的请求招致地理惯性。地理上分布的存储系统包括地理上分布的站点,每个站点包括用于本地存储包括数据元素的全局一致的分布式数据库的一部分的站点存储单元以及用于接收与其中一些数据元素相关的请求的本地访问点。地理上分布的存储系统包括数据管理模块,用于把至少一个所请求的数据元素转发到位于从其接收到请求的第一地理分布站点处的本地访问点并且在这第一站点处存储该至少一个所请求的数据元素,由此为将来来自该第一站点的请求提供对数据元素的本地访问能力,同时维持分布式数据库的全局一致性。”
标题为“Remote Access and Geographically Distributed Computers in aGlobally Addressable Storage Environment”的美国专利No.5987505涉及“一种计算机系统采用全球可寻址的存储环境,即使数据被存储在诸如计算机硬盘的持久性存储设备和其它传统不可寻址的数据存储设备上时,该环境也允许多个联网的计算机通过寻址来访问数据。计算机可以位于单个计算机网络上或者多个互连的计算机网络上,诸如通过广域网(WAN)耦合的两个局域网(LAN)。全球可寻址的存储环境允许由多个网络上的各个计算机访问数据并在这些计算机之间共享数据。”
Ms.S.V.Patil等人于International Journal of Computer Applications 2010(0975–8887),Volume 1–No.22上发表的“Unified Virtual Storage:Virtualization ofDistributed Storage in a Network”描述了“一种高效利用经网络连接的台式机器上的空闲盘空间的途径。在如今许多网络中,客户端节点的本地盘仅仅被零星地使用。这是在网络中高效地管理数据存储并且为在LAN中共享台式机器上的盘空间提供软件支持的尝试。在目前的情况下,常规服务器上的存储扩展具有约束,像最大扩展限制,昂贵的事情,并且在硬件更换的情况下,数据的升级、手动重定位变得混乱。UVS(统一虚拟存储)是高效地利用经网络连接的台式机器上的空闲可用盘空间的尝试。其目的是减小网络服务器上的数据流量负荷、高效地利用客户端节点上的空间,由此避免空间的浪费。它还消除了对存储扩展的硬件限制并且提供数据存储的位置透明性。UVS的主要优点在于它可以被无缝地集成到现有的基础设施(局域网系统)中。虚拟存储几乎无限地支持可伸缩的体系架构。客户端节点可以使用统一虚拟驱动器作为跨不同服务器对分布式储存器的单点访问,由此消除服务器的单独寻址。在由网络连接的UVS服务器上实现的原型的性能比集中式系统好,并且甚至在高负荷期间,框架的开销也适中。”
标题为“Dynamic Structural Management of a Distributed CachingInfrastructure”的美国专利公开No.2011/0153770涉及“用于n层分布式高速缓存基础设施的动态结构化管理的方法、系统和计算机程序产品。在本发明的实施例中,n层分布式高速缓存体系架构的动态结构化管理的方法包括建立到布置在n层高速缓存中的各个层节点中的多个高速缓存服务器的通信连接、为n层高速缓存的各个层节点中的每个高速缓存服务器收集性能度量、识别n层的对应一个层节点中的特定高速缓存资源跨过阈值的特性,并且动态地结构化一组高速缓存资源,包括解释所识别出的特性的特定高速缓存资源。”
发明内容
根据目前公开的主题的第一方面,提供了用于为存储系统的逻辑存储实体部署数据-路径相关插件的方法,该方法包括:为所述逻辑存储实体部署所述数据-路径相关插件,其中所述部署包括创建包含插件的数据-路径规范,并且其中所述包含插件的数据-路径规范包括数据-路径相关插件的操作;及创建验证数据路径规范,其中所述验证数据-路径规范不包括数据-路径相关插件的操作,并且其中在具有所述验证数据-路径规范的验证数据-路径中执行的任务生成使得能够对由所述任务在具有所述包含插件的数据-路径规范的包含插件的数据-路径中执行而生成的给定数据进行确认的验证数据。
在一些情况下,数据-路径相关插件选自存储在与存储系统相关联的插件池中的数据-路径相关插件的列表。
在一些情况下,该方法还包括检查所述部署是否将不导致与逻辑存储实体相关联的服务等级规范(SLS)的违背,并且其中如果所述检查指示所述部署将不导致所述SLS的违背,则所述部署和所述创建被执行。
在一些情况下,该方法还包括在所述包含插件的数据-路径上和在所述验证数据-路径上执行给定的任务;利用所述验证数据验证所述给定数据;及如果第一执行结果与第二执行结果之间存在任何不相符,则执行一个或多个失败动作。
在一些情况下,如果所述验证数据包含与所述给定数据中所包含的信息完全相同的信息,则所述验证是成功的。
在一些情况下,如果所述验证数据与所述给定数据完全相同,则所述验证是成功的。
在一些情况下,所述一个或多个失败动作包括以下动作当中的一个或多个:
(a)从逻辑存储实体去除所述未经过确认的数据-路径相关插件;
(b)对于逻辑存储实体禁用未经过确认的数据-路径相关插件;
(c)利用验证数据校正给定数据;
(d)向逻辑存储实体的用户发布指示失败的通知;
(e)如果存在未经过确认的数据-路径相关插件的任何之前的版本,则恢复到之前的版本;
(f)降低与未经过确认的数据-路径相关插件相关联的等级。
在一些情况下,该方法还包括,如果未经过确认的数据-路径相关插件的确认完成,则去除验证数据-路径并且执行一个或多个确认动作。
在一些情况下,所述确认动作包括以下动作当中的一个或多个:
(a)增加与未经过确认的数据-路径相关插件相关联的等级;
(b)向逻辑存储实体的用户发布指示确认完成的通知。
在一些情况下,所述存储系统是分布式存储系统,并且如果所述检查指示所述部署将导致所述SLS的违背,则该方法还包括:接收与分布式存储系统的动态行为相关的动态行为参数数据;至少基于所述至少一个SLS、与连接到所述分布式存储系统的基础设施层的存储相关资源相关的存储相关资源参数数据、以及动态行为参数数据,为分布式存储系统计算重新配置;及根据计算出的重新配置自动分配所述存储相关资源之一的至少一部分。
根据所公开主题的第二方面,提供了包括被配置为执行统一分布式存储平台(UDSP)代理的至少一个处理资源的计算机节点,其中所述UDSP代理被配置为:为所述逻辑存储实体部署所述数据-路径相关插件,其中所述部署包括创建包含插件的数据-路径规范,并且其中所述包含插件的数据-路径规范包括数据-路径相关插件的操作;及创建验证数据路径规范,其中所述验证数据-路径规范不包括数据-路径相关插件的操作,并且其中在具有所述验证数据-路径规范的验证数据-路径中执行的任务生成使得能够对由所述任务在具有所述包含插件的数据-路径规范的包含插件的数据-路径中执行而生成的给定数据进行确认的验证数据。
在一些情况下,数据-路径相关插件选自存储在与存储系统相关联的插件池中的数据-路径相关插件的列表。
在一些情况下,所述UDSP代理还被配置为检查所述部署是否将不导致与逻辑存储实体相关联的服务等级规范(SLS)的违背,并且其中如果所述检查指示所述部署将不导致所述SLS的违背,则所述部署和所述创建被执行。
在一些情况下,所述UDSP代理还被配置为:在所述包含插件的数据-路径上和在所述验证数据-路径上执行给定的任务;利用所述验证数据验证所述给定数据;及如果第一执行结果与第二执行结果之间存在任何不相符,则执行一个或多个失败动作。
在一些情况下,如果所述验证数据包含与所述给定数据中所包含的信息完全相同的信息,则所述验证是成功的。
在一些情况下,如果所述验证数据与所述给定数据完全相同,则所述验证是成功的。
在一些情况下,所述一个或多个失败动作包括以下动作当中的一个或多个:
(a)从逻辑存储实体去除所述未经过确认的数据-路径相关插件;
(b)对于逻辑存储实体禁用未经过确认的数据-路径相关插件;
(c)利用验证数据校正给定数据;
(d)向逻辑存储实体的用户发布指示失败的通知;
(e)如果存在未经过确认的数据-路径相关插件的任何之前的版本,则恢复到之前的版本;
(f)降低与未经过确认的数据-路径相关插件相关联的等级。
在一些情况下,如果未经过确认的数据-路径相关插件的确认完成,则所述UDSP代理还被配置为去除验证数据-路径并且执行一个或多个确认动作。
在一些情况下,所述确认动作包括以下动作当中的一个或多个:
(a)增加与未经过确认的数据-路径相关插件相关联的等级;
(b)向逻辑存储实体的用户发布指示确认完成的通知。
在一些情况下,所述存储系统是分布式存储系统,并且如果所述检查指示所述部署将导致所述SLS的违背,则所述UDSP代理还被配置为:接收与分布式存储系统的动态行为相关的动态行为参数数据;至少基于所述至少一个SLS、与连接到所述分布式存储系统的基础设施层的存储相关资源相关的存储相关资源参数数据、以及动态行为参数数据,为分布式存储系统计算重新配置;及根据计算出的重新配置自动分配所述存储相关资源之一的至少一部分。
根据第三方面,提供了可由机器读取的程序存储设备,具体体现可由机器执行以执行为存储系统的逻辑存储实体部署数据-路径相关插件的方法的指令程序,该方法包括步骤:为所述逻辑存储实体部署所述数据-路径相关插件,其中所述部署包括创建包含插件的数据-路径规范,并且其中所述包含插件的数据-路径规范包括数据-路径相关插件的操作;及创建验证数据路径规范,其中所述验证数据-路径规范不包括数据-路径相关插件的操作,并且其中在具有所述验证数据-路径规范的验证数据-路径中执行的任务生成使得能够对由所述任务在具有所述包含插件的数据-路径规范的包含插件的数据-路径中执行而生成的给定数据进行确认的验证数据。
附图说明
为了理解本公开主题并且看到它在实践当中可以如何被执行,现在将参考附图仅仅作为非限制性示例来描述主题,其中:
图1示意性地示出了根据本发明的示例性实施例的包括基础设施层的分布式存储系统的顶层体系架构;
图2示意性地示出了根据目前公开的主题的用于配置分布式存储系统的简化的示例性系统;
图3示意性地示出了根据目前公开的主题的由基于目标的管理系统执行的优化过程的简化和示例性流程图;
图4示意性地示出了根据目前公开的主题的由基于目标的管理系统执行的配置过程的示例性操作算法的简化流程图;
图5是示意性地示出根据目前公开的主题的某些例子的连接到分布式存储系统的示例性计算机节点的框图;
图6是示出根据目前公开的主题的为了把新的数据-路径相关插件引入分布式存储系统的插件层而执行的操作序列的一个例子的流程图;
图7是示出根据目前公开的主题的为了在分布式存储系统上部署未经过确认的数据-路径相关插件而执行的操作序列的一个例子的流程图;
图8是示出根据目前公开的主题的为了执行与数据-路径相关插件相关的任务而执行的操作序列的一个例子的流程图;
图9是示出根据目前公开的主题的为了管理分布式存储系统的重新配置而执行的操作序列的一个例子的流程图;及
图10是示出根据目前公开的主题的为了确认数据-路径相关插件而执行的操作序列的一个例子的流程图。
具体实施方式
在所阐述的附图和描述中,完全相同的标号指示不同实施例或配置所共有的那些组件。
除非另外专门声明,否则如从以下讨论明显的,要认识到,贯穿本说明书,利用诸如“创建”、“接收”、“拷贝”、“更新”、“删除”等术语的讨论包括操纵数据和/或把数据变换成其它数据的计算机的动作和/或过程,所述数据被表示为物理量,例如,诸如电子量,和/或所述数据代表物理对象。术语“计算机”应当被广义地认为覆盖具有数据处理能力的任何种类的电子设备,作为非限制例,包括个人计算机、服务器、计算系统、通信设备、处理器(例如,数字信号处理器(DSP)、微控制器、现场可编程门阵列(FPGA)、专用集成电路(ASIC),等等)、任何其它电子计算设备、和/或其任意组合。
根据本文示教的操作可以由专门为期望目的构造的计算机或者由通过存储在计算机可读存储介质中的计算机程序而专门配置为用于期望目的的通用计算机来执行。
如本文所使用的,短语“例如”、“诸如”及其变体描述目前公开的主题的非限制性实施例。说明书中对“一种情况”、“一些情况”、“其它情况”或者其变体的引用意味着联系(一种或多种)实施例所描述的特定特征、结构或特性包括在目前公开的主题的至少一种实施例中。因此,短语“一种情况”、“一些情况”、“其它情况”或者其变体的出现不一定全都指相同的(一种或多种)实施例。
要认识到,为了清晰而在分开的实施例的上下文中描述的目前公开的主题的某些特征也可以在单个实施例中以组合提供。相反,为了简洁而在单个实施例的上下文中描述的目前公开的主题的各种特征也可以单独地或者以任何合适的子组合提供。
在目前公开的主题的实施例中,比图2-4和6-10中所示那些更少、更多和/或不同的阶段可以被执行。在目前公开的主题的实施例中,在图2-4和6-10中所示的一个或多个阶段可以以不同的次序执行和/或阶段的一个或多个组可以被同时执行。图1和5示出了根据目前公开的主题的实施例的系统体系架构的一般示意图。图1和5中的每个模块可以由执行如本文定义和解释的功能的软件、硬件和/或固件的任意组合构成。图1和5中的模块可以集中在一个位置中或者在多于一个位置上散布。在目前公开的主题的其它实施例中,系统可以包括比图1和5中所示的那些更少、更多和/或不同的模块。
记住这一点,注意力转向图1,该图示意性地示出了根据目前公开的主题的包括基础设施层的分布式存储系统的顶层体系架构。根据目前公开的主题的例子,分布式存储系统(DSS)200可以包括以下的层当中的一个或多个:基础设施层201、统一分布式存储平台(UDSP)层202、及API/框架层203。
根据目前公开的主题的一些例子,基础设施层201可以包括一个或多个互连的计算机节点205(例如,任何类型的计算机,包括尤其是诸如一个或多个处理单元的一个或多个处理资源、诸如存储器的一个或多个存储器资源、以及一个或多个网络接口),并且在一些情况下是两个或更多个互连的计算机节点205,本文尤其参考图5提供对其更详细的描述。基础设施层201还可以包括以下存储相关的资源当中一个或多个:(a)数据存储资源(例如,数据存储设备204、RAID(独立磁盘冗余阵列)206、DAS(直接附连存储)208、JBOD(仅一簇驱动器)210、网络存储部件207(例如,SAN,NAS,等等)、SSD 213,等等);(b)高速缓存资源212,诸如存储器资源(例如,RAM、DRAM,等等)、易失性和/或非易失性的,和/或在一些情况下可以附加地或者另选地用作高速缓存资源的数据存储资源(例如,SSD 213),等等;(c)网络资源214;及(d)向DSS 200提供进一步功能性和/或增强DSS 200的性能的附加资源(诸如压缩加速器、加密加速器209、启用与SAN资源的通信的主机总线适配器(HBA),等等)。
在一些情况下,资源可以包括多于一个的相同类型的设备,和/或多于一个的不同类型的设备。本文接下来将是对一些资源的更详细描述。
根据目前公开的主题的一些例子,计算机节点205可以通过网络(例如,通用网络)互连。
在一些情况下,基础设施层201的一个或多个资源可以直接连接到一个或多个计算机节点205。在一些情况下,基础设施层201的一个或多个资源可以包括在计算机节点205内并且构成其一部分。在一些情况下,基础设施层201的一个或多个资源可以通过网络(例如,通用网络)连接(例如,通过诸如iSCSI 222的逻辑连接,等等)到一个或多个计算机节点205。
可选地,网络可以是通用网络。可选地,网络可以包括WAN。可选地,WAN可以是全球WAN,诸如像因特网。可选地,网络资源可以利用IP网络基础设施互连。可选地,网络可以是存储区域网络(SAN)。可选地,网络可以包括存储虚拟化。可选地,网络可以包括LAN。可选地,网络基础设施可以包括以太网、Infiniband、FC(光纤信道)217、FCoE(经以太网的光纤信道)等等、或者两种或更多种网络基础设施的任意组合。可选地,网络可以是本领域中已知的任何类型的网络,包括通用网络和/或存储网络。可选地,网络可以是适于应用基于目标的管理系统以便在网络内分配和管理资源的任何网络,如本文进一步详细描述的。可选地,网络可以是任何两种或更多种网络类型(包括尤其是本文所公开的网络类型)的组合。
根据本公开的主题的一些例子,基础设施层201的至少一个资源(包括尤其是计算机节点205、数据存储资源、高速缓存资源、网络资源、连接到计算机节点205的附加资源、或者任何其它资源)可以是连接到网络和/或连接到一个或多个计算机节点205的现成商品,而不是特意建立的资源。要指出的是,这种资源可以如本文详细描述地那样互连,而不管资源的特性,诸如像制造商、尺寸、计算能力、容量等等。因此,可与计算机节点205通信的任何资源(包括尤其是计算机节点205),不管其制造商,都可连接到基础设施层201并被DSS 200使用,如本文进一步详细描述的。在一些情况下,任何数量的资源(包括尤其是计算机节点205)可以连接到网络和/或连接到一个或多个计算机节点205并被DSS 200使用,因此启用DSS 200的可扩展性。在一些情况下,任何数量的计算机节点205都可以连接到网络,并且任何数量的资源都可连接到一个或多个计算机节点205并被DSS 200使用,因此启用DSS 200的可扩展性。要指出的是,关于把新资源(包括尤其是计算机节点205)连接到DSS 200的过程的更详细说明在本文尤其是关于图5进一步详细描述。
转向UDSP层202,根据目前公开的主题的一些例子,它可以包括可安装在一个或多个计算机节点205上(或者以别的方式与其关联或包括在其中)的一个或多个UDSP代理220。在一些情况下,UDSP代理220可以安装在每个计算机节点205上(或者以别的方式与其关联)。在一些情况下,UDSP代理220可以附加地安装在一个或多个网关资源216(网关资源216尤其是可充当协议转换器,如本文进一步详细描述的)上(或者以别的方式与其关联),并且在一些情况下安装在每个网关资源216上。在一些情况下,UDSP代理220可以附加地安装在一个或多个客户端服务器218(例如,服务器和/或作为客户端连接到DSS 200的其它设备)上(或者以别的方式与其关联),并且在一些情况下安装在每个客户端服务器218上。要指出的是,在一些情况下,客户端服务器218可以直接与DSS 200交互,而没有对任何网关资源216(网关资源216是可选的)的需求。还应当指出的是,在一些情况下,根据其安装位置或者其关联,UDSP代理220中可以存在差异(例如,其功能性和/或其容量等等的差异)(例如,在安装在计算机节点205上或者以别的方式与其关联的UDSP代理220、安装在网关资源216上或者以别的方式与其关联的UDSP代理220、安装在客户端服务器218上或者以别的方式与其关联的UDSP代理220等等之间会存在差异)。
要指出的是,本文尤其是关于图5提供了UDSP代理220的详细描述。话虽如此,但要指出的是,根据目前公开的主题的一些例子,UDSP代理220可被配置成控制和管理DSS 200的各种操作(包括尤其是自动分配和管理基础设施层201的资源、处理数据-路径操作,等等)。在一些情况下,UDSP代理220可被配置为管理新计算机节点205到DSS 200的基础设施层201的连接。在一些情况下,UDSP代理220可被配置成检测连接到计算机节点205(UDSP代理220被安装在其上)的资源并且管理这些资源。如以上所指示的,本文尤其关于图5提供了UDSP代理220的更详细描述。
在一些情况下,UDSP层202可以包括UDSP 225,其中UDSP 225包括用于DSS 200的管理系统。可选地,管理系统处理可以通过安装在基础设施层201中的计算机节点205上的一个或多个UDSP代理220来实现,或者通过安装在网关资源216上或能够访问DSS 200(例如,直接和/或通过网关资源216)的客户端服务器218上的一个或多个UDSP代理220来实现,或者通过它们的任意组合来实现。
管理系统可以使用户能够执行与DSS 200相关的各种管理任务(包括尤其是监视和报告任务),诸如创建可与服务等级规范(SLS)关联的新逻辑存储实体(诸如逻辑单元、对象存储、文件系统实例,等等)(在一些情况下,每个逻辑存储实体与单个SLS关联)、更新逻辑存储实体、准许逻辑存储实体对网关资源216和/或对客户端服务器218的访问权限、创建快照、创建备份、故障切换到远程站点、故障恢复到主站点、监视DSS 200的动态行为、监视SLS顺应性、参考DSS 200的不同范围的(例如,以整个DSS 200、某些站点的分辨率,某些类型的用途,诸如用于某个SLS、某些资源,等等)各种(例如,预定义和/或用户自定义等)报告(例如,性能报告、资源可用性报告、库存报告、指示计算机节点205与其它资源之间关系的关系报告、包括关键性能指标的各种参数的趋势报告和预测报告,等等)的生成、管理由DSS200提供的各种警报(例如,发生故障的硬件的警报,等等),等等。要指出的是,以上管理任务仅仅是作为非限制例提供的。要指出的是,在一些情况下,逻辑存储实体可以由DSS 200根据SLS自动创建,如本文进一步详细描述的。要指出的是,每个逻辑存储实体可以与一个或多个数据存储资源相关联。
要指出的是,贯穿本说明书,当提到用户时,这可以指诸如系统管理员的人类操作员,或者指任何类型的辅助实体。辅助实体可以指例如诸如外部管理系统的外部应用,包括不需要任何人为干预的辅助实体,等等。
在一些情况下,管理系统可以使用户能够给DSS 200提供用户定义的存储需求,该需要定义指定用户需要DSS 200满足的各种需求的服务等级规范(SLS)。在一些情况下,SLS可以与逻辑存储实体关联。可选地,SLS可以包括信息,诸如像数据要在其中被存储和/或处理的一个或多个地理位置的规范;定义可用性、保留、恢复参数(例如,RPO-恢复点目标、RTO-恢复时间目标)的本地保护等级;定义信息应予保留多长时间的备份保留策略;用于灾难恢复(DR)的远程保护级别,定义一个或多个远程地理位置以便在各种灾难场景下实现指定的可用性、保留和恢复目标;本地和/或远程复制策略;利用诸如IOPS(每秒的输入/输出操作)、响应时间和吞吐量的度量来定义的性能水平(可选地被提交);加密需求;重复数据删除需求;压缩需求;存储方法(物理容量,瘦容量/配置),等等。
在一些情况下,管理系统可以启用各种服务等级组(SLG)的管理(包括创建、更新和删除)。SLG是可在多个逻辑存储实体之间共享的模板SLS。SLG可以是(需要增强的)部分SLS和/或包含可被覆盖的设置。因此,例如,SLG可以定义各种恢复参数,只有这些恢复参数可由各种SLS继承,其中每个恢复参数都可以添加和/或覆盖SLS参数。
根据目前公开的主题的一些例子,UDSP 225可以包括用于在DSS 200中分配资源并管理资源的自动管理系统。可选地,自动管理系统是基于目标的管理系统(OBMS)100,它可被配置为分配和管理网络中的资源,尤其是基于以下任何一个或者其任意组合:通过一个或多个服务等级规范(SLS)定义的用户定义的需求、与计算机节点205和/或与连接到计算机节点205的资源相关的各种参数的数据、参考DSS 200或者其部分的各种参数的数据(例如,最大允许的站点等级过度提交(over-commit)、最大允许的整体过度提交、各种安全参数,等等),以及参考DSS 200的动态行为和环境(例如,客户端服务器218、网关资源216,等等)的各种参数的数据,如本文尤其是关于图2和图5进一步详细描述的。可选地,OBMS100处理可以通过安装在基础设施层201中的一个或多个计算机节点205上的一个或多个UDSP代理220来实现,或者通过安装在网关资源216上或能够访问DSS 200(例如,直接和/或通过网关资源216)的客户端服务器218上的一个或多个UDSP代理220来实现,或者通过它们任意组合来实现。
根据目前公开的主题的一些例子,API/框架层203包括插件层,其便于向DSS 200添加软件扩展(插件)。这种插件可以用于例如向数据应用过程、向DSS 200引入新的功能和特征、把DSS 200与特定的应用相接口并且实现特定于应用的任务(例如,存储相关的任务,等等)、实现特定于各种资源的驱动程序、引入新SLS参数和/或参数组(例如,与插件功能和/或目标相关)、实现管理功能性,等等。在一些情况下,插件层还可以包括与各种硬件组件(例如,加密卡,等等)关联的驱动程序。
在一些情况下,插件可以部署在一个或多个UDSP代理220上。在一些情况下,插件可以部署在一个或多个UDSP代理220上,例如,根据插件规范(例如,软件加密插件可安装在任何UDSP代理220上)、根据连接到计算机节点205和/或连接到网关资源216和/或连接到UDSP代理220(客户端服务器218被安装在它们上)的各种资源(例如,硬件加速器插件可以自动部署在与计算机节点205关联的每个UDSP代理220上,其中计算机节点205与这种硬件加速器相关联)、根据自动管理系统(例如OBMS 100)的决定、或者根据系统管理员的选择,等等。在一些情况下,插件可以被自动部署,例如,由自动管理系统(例如OBMS 100)和/或由计算机节点205。可选地,软件扩展可以包括数据处理插件226,诸如像例如使得能够进行存储在DSS 200上的数据的重复数据删除的重复数据删除插件、例如使得能够进行存储在DSS200上的数据的加密/解密的数据加密插件、例如使得能够进行存储在DSS 200上的数据的压缩/解压缩的数据压缩插件,等等。可选地,软件扩展可以包括存储特征插件228,诸如像例如使得能够进行存储在DSS 200上的数据的加索引的内容索引插件、例如使得能够进行存储在DSS 200上的数据的快照管理的快照管理插件、例如使得能够进行存储在DSS 200上的数据的分层的分层管理插件、例如使得能够进行与灾难恢复相关的处理、策略和过程的管理的灾难恢复插件、例如使得能够进行存储在DSS 200上的数据的连续或实时备份的管理的连续数据保护插件,等等。可选地,软件扩展可以包括应用插件230,诸如像例如使得能够进行加速查询处理的数据库插件、例如使得能够执行各种DSS 200管理任务及执行与用户、客户端服务器218及连接到DSS 200的其它实体的其它交互的管理插件233,以及其它合适的应用插件。要指出的是,特定插件可以实现以上定义的各种插件当中的两个或更多个的功能。
如本文所指示的,在一些情况下,插件可以引入新的SLS参数和/或(一个或多个)参数组(例如,与插件功能和/或目标相关)。在这种情况下,根据插件的功能性,各个SLS参数和/或(一个或多个)参数组可被引入到DSS 200。这样引入的SLS参数可以被使用,以便设置插件相关的需求,例如由用户和/或由自动管理系统(例如OBMS 100)自动地设置,等等。
在一些情况下,软件扩展可以存储在其中一个计算机节点205上或分布在多于一个计算机节点205上。在一些情况下,软件扩展可以存储在连接到一个或多个计算机节点205的一个或多个数据存储资源上。在一些情况下,软件扩展可以存储在可被UDSP代理220共享的虚拟软件扩展库中。
在一些情况下,软件扩展可以被自动地和/或手动地(例如,由系统管理员)管理。这种管理有时可以通过利用管理插件233来执行。在这种情况下,管理插件233可以使得能够向DSS 200添加/从DSS 200去除软件扩展、向一个或多个UDSP代理220添加/从一个或多个UDSP代理220去除各种软件扩展,等等。
在DSS 200的顶层体系架构的描述之后,在此提供可由基于目标的管理系统(OBMS)100执行的DSS 200配置过程的详细描述。为此,现在注意力指向图2,示出了根据目前公开的主题的用于配置分布式存储系统200的简化的示例性系统。为此,OBMS 100可被配置为尤其是在基础设施层201中自动分配和管理资源。OBMS 100可以包括输入模块102、一个或多个处理器104、以及输出模块106。
在一些情况下,输入模块102可被配置为接收输入数据。这种输入数据可以包括尤其是以下任何一个或者其任意组合:通过一个或多个服务等级规范(SLS)定义的用户定义的存储需求、一个或多个逻辑存储实体的定义、与计算机节点205和/或与连接到计算机节点205的资源相关的各种参数的数据(包括存储相关的资源,也被称为存储相关的资源数据)、参考DSS 200或者其部分的各种参数的数据(例如,最大允许的站点等级过度提交、最大允许的整体过度提交、各种安全参数,等等)、关于DSS 200和环境(例如,客户端服务器218、网关资源216,等等)的动态行为的各种参数的数据(动态行为参数数据),等等。
在一些情况下,用户定义的需求可以定义一个或多个服务等级规范(SLS),该一个或多个服务等级规范指定一个或多个用户要求DSS 200和/或一个或多个逻辑存储实体满足的各种需求。
在一些情况下,与DSS 200和环境的动态行为相关的各种参数的数据(动态行为参数数据)可以包括指示一个或多个DSS 200组件(包括计算机节点205和连接到计算机节点205的资源)的当前状态的各种参数数据。这种数据可以包括关于一个或多个资源的存在和/或负荷和/或可用性和/或故障和/或容量和/或响应时间和/或连接性和/或成本(例如,不同类型的数据存储资源、网络链路的成本)的数据和/或关于一个或多个资源的任何其它数据,包括关于一个或多个计算机节点205、一个或多个网关资源216、一个或多个客户端服务器218的数据,等等。在一些情况下,这种数据可以包括尤其是各种统计数据。
在一些情况下,与计算机节点205和/或连接到其的资源(包括与存储相关的资源,也被称为存储相关的资源数据)相关的各种参数的数据可以包括指示DSS 200的资源的各种参数的数据,其中资源包括硬件资源,包括与存储相关的资源,其中参数诸如像:
a.关于数据存储资源的参数(例如,对于其每个硬驱):
1.硬驱分类参数(例如,硬驱尺寸、接口(例如,SAS、SATA、FC、超-SCSI,等)、高速缓存尺寸、具体特征(例如,驱动器上的加密,等),等等);
2.硬驱性能参数(例如,响应时间、平均等待时间、随机寻道时间(random seektime)、数据传送速率,等等);
3.硬驱功耗;
4.硬驱可靠性参数(例如,平均故障间隔时间(MTBF)、年故障率(AFR),等等);
b.计算机节点205的参数:
1.CPU的数量和每个CPU的核心的数量;
2.每个CPU和/或核心的性能参数,诸如频率、L2和L3高速缓存尺寸;
3.体系架构(例如,CPU和/或核心支持64-位计算吗,是小端法(little-endian)还是大端法(big-endian));
4.对某些指令集的支持(例如,AES-NI,用于加速AES加密的新指令集);
5.可用的硬驱插槽的数量;
6.可用的存储接口(SATA、SAS,等等);
7.存储器的最大数量;
8.所支持的存储器配置;
c.高速缓存资源参数:
1.高速缓存资源类型(例如,DRAM、SSD)、尺寸和性能;
2.高速缓存的存储空间是在本地还是远程;
3.NUMA参数;
d.网关资源参数:
1.CPU的数量和每个CPU的核心的数量;
2.每个CPU和/或核心的性能参数,诸如频率、L2和L3高速缓存尺寸;
3.体系架构(例如,CPU和/或核心支持64-位计算吗,是小端法还是大端法);
4.对某些指令集的支持(例如,AES-NI,用于加速AES加密的新指令集);
5.可用的硬驱插槽的数量;
6.可用的存储接口(SATA、SAS,等等);
7.存储器的最大数量;
8.所支持的存储器配置;
9.关于网关的联网参数(端口数量、每个端口的速度和类型,等等);
e.网络资源参数:
1.切换和路由容量;
2.网络类型;
3.安全参数。
要指出的是,这些仅仅是例子并且可以使用附加的和/或另选的各种参数。
在一些情况下,关于DSS 200和环境的动态行为的数据(动态行为参数数据)可以包括指示DSS 200的资源的各种参数,其中资源包括硬件资源,其中参数诸如像:
a.关于数据存储资源的参数(例如,对于其每个硬驱):
1.硬驱空闲空间;
2.硬驱的S.M.A.R.T.参数;
3.硬驱的功率状态(切断、处于自旋向上阶段、就绪,等等);
4.硬驱上最近的和当前的负荷;
5.现有的分配和保留;
b.计算机节点205的参数:
1.用于每个核心的最近的和当前的负荷统计数据;
2.现有的分配和保留;
3.当前存储器的数量;
c.高速缓存资源参数:
1.可用的尺寸;
2.高速缓存的占用水平;
3.最近的和当前的交换/页面错误统计数据;
4.现有的分配和保留;
d.网关资源参数:
1.最近的和当前的网络连接统计数据;
2.最近的和当前的节点负荷统计数据;
3.最近的和当前的等待时间统计数据;
4.最近的和当前的路由成本统计数据(对于由网关路由到DSS中的命令);
5.现有的分配和保留;
e.网络资源参数:
1.网段的最近的和当前的负荷;
2.网段的最近的和当前的可靠性和质量参数;
3.现有的分配和保留。
要指出的是,这些仅仅是例子并且可以使用附加的和/或另选的各种参数。
在一些情况下,输入模块102可被配置为把输入数据传送到一个或多个处理器104。如所指示的,OBMS 100处理可以通过一个或多个UDSP代码220实现(例如,在利用基于目标的配置模块380的时,如本文尤其是参考图5进一步详细描述的),例如,通过安装在体系架构层201中一个或多个计算机节点205上的UDSP代理220,或者通过安装在一个或多个网关资源216上的UDSP代理220,或者通过安装在能够访问DSS 200(例如,直接地或者通过网关资源216)的一个或多个客户端服务器218上的UDSP代理220,或者通过它们的任意组合。在这些情况下,这一个或多个处理器104可以是与这种UDSP代理220关联的一个或多个处理资源(例如,处理单元)(例如,如果处理是通过安装在计算机节点205上的UDSP代理220实现的,则处理器可以是该计算机节点205的处理单元,等等)。要指出的是,多于一个的处理资源(例如,处理单元)可以在例如并行和/或分布式处理的情况下使用。
一个或多个处理器104可被配置为从输入模块102接收输入数据并且基于该输入数据执行优化过程,用于确定满足由DSS 200的一个或多个用户提供的用户定义的所有存储需求(例如,SLS)的配置需求,尤其是关于它们影响的实体(诸如与这种SLS关联的逻辑存储实体)。优化过程和所确定的配置需求的更详细描述在本文尤其是关于图3提供。
配置需求可以传送到输出模块106,在一些情况下,输出模块106可以确定当前的DSS 200资源是否足以满足所确定的配置需求。相应地,输出模块106可被配置为执行解决方案驱动的动作,这包括在配置需求可以被系统满足的情况下的资源分配、保留、提交或过度提交(例如,虚拟地分配比基础设施层201中可用的实际资源更多的资源),或者发布要由用户对其动作的改进建议,这可以包括添加资源和/或添加插件和/或任何其它建议,用于使系统满足配置需求。这种改进建议可以包括,例如,添加一个或多个资源、添加或升级一个或多个插件、跨附加的和/或不同的位置(本地和/或远程)延伸基础设施的建议,等等。
要指出的是,在一些情况下,配置过程或者其部分,可以在第一次部署DSS 200和/或一个或多个逻辑存储实体的时候,和/或在对DSS 200和/或对一个或多个逻辑存储实体应用的一个或多个变化(例如,预定义的变化)(例如,诸如计算机节点205、高速缓存资源、数据存储资源、网络资源、插件或者任何其它资源的资源向DSS 200的添加/去除;一个或多个用户定义的存储需求的变化,等等)之后,和/或根据DSS 200的动态行为(如以下尤其是关于图5和图9进一步详细描述的),和/或在一个或多个新插件引入之后,和/或在零个或更多个现有插件的更新之后等等,被启动。附加地或者另选地,配置过程或者其部分可以以半连续的方式被启动(例如,以预定的时间间隔,等等)。附加地或者另选地,配置过程或者其部分可以被连续地执行。
还要指出的是,参考图2,一些框可以集成到统一的框中或者被分成几个框,和/或其它框可以添加。还应当指出的是,虽然流程图也是参考实现它们的系统元件描述的,但是这不意味着绑定,并且框可以由除本文所述的那些之外的元件执行。
现在注意力转向图3,该图示意性地示出了根据目前公开的主题的由基于目标的存储管理系统执行的优化过程的简化和示例性流程图。在一些情况下,一个或多个处理器104可被配置为接收输入数据(例如,从输入模块102),并且在一些情况下,把所接收的输入数据转换成适于由优化引擎处理的格式(例如,转换成优化问题表示)(框112)。
与一个或多个处理器104关联的优化引擎可被配置为基于原始的和/或转换后的输入数据执行优化过程,以到达所需的配置,该配置满足如由输入数据定义的需求(如本文尤其是关于图2进一步详细描述的)(框114)。要指出的是,在一些情况下,优化过程可以被指引以返回它找出的第一有效解决方案,而在其它情况下,优化过程可以被指引以搜索一组计算出的有效解决方案中的最佳解决方案。可选地,在优化过程中使用的优化技术可以包括线性规划、模拟退火、基因算法或者本领域中已知的任何其它合适的优化技术当中的任何一种或者其任意组合。可选地,优化技术可以利用启发和/或逼近。可选地,优化决定可以基于部分和/或非最新的信息做出。
在一些情况下,优化引擎的输出可以被一个或多个处理器104从优化解决方案表示转换成配置需求表示(框116)。
在一些情况下,配置需求由一个或多个处理器104输出,例如作为以下任何一个或者其任意组合:位置需求(例如,至少一个附加站点的可用性、附加站点中一定数量存储空间的可用性、站点之间的最大等待时间、站点之间的最小地理距离(例如,为了灾难恢复目的),等等)、高速缓存资源需求(例如,所需的高速缓存尺寸、所需的高速缓存类型、所需的高速缓存位置、所需的高速缓存性能参数,等等)、网关资源需求(例如,所需的光纤信道带宽、所需的处理性能参数,等等)、网络资源需求(例如,所需的网络带宽、所需的网络类型,等等)、计算资源需求(例如,计算机节点处理性能参数、计算机节点CPU核心的数量,等等)、数据存储资源需求(例如,所需的存储空间、所需的存储类型,等等)、附加的资源需求(例如,所需的压缩性能、所需的加密性能,等等)、插件需求(例如,所需的数据库插件,等等)、环境需求(例如,所需的物理安全等级,等等),等等(框117)。
要指出的是,参考图3,一些框可以集成到统一的框中或者被分成几个框,和/或其它框可以添加。还应当指出的是,虽然流程图也是参考实现它们的系统元件描述的,但是这不意味着绑定,并且框可以由除本文所述的那些之外的元件执行。
转向图4,示出了根据目前公开的主题的由基于目标的管理系统执行的配置过程的示例性操作算法的简化流程图的示意性说明。在一些情况下,如以上所指示的,输入模块102可以接收输入数据并且把数据传送到一个或多个处理器104(框110)。如以上进一步指示的,在一些情况下,一个或多个处理器104可以把输入数据转换成适于由优化引擎进行处理的格式(例如,转换成优化问题表示)(框112)。
与一个或多个处理器104关联的优化引擎可被配置为基于原始的和/或转换后的输入数据执行优化过程,以到达满足如由输入数据定义的需求的所需配置(如本文尤其是关于图2进一步详细描述的)(框114)。在一些情况下,优化引擎的输出可以被一个或多个处理器104从优化解决方案表示转换为配置需求表示(框116)。
在一些情况下,输出模块可以比较所需的配置与DSS 200资源(例如,计算机节点205、存储相关的资源,等等)和/或环境的实际数据,用于确定DSS 200是否可以满足所需的配置(框118)。要指出的是,在一些情况下,实际的DSS 200资源可以指DSS 200资源当中目前可用的那些部分。如果实际的DSS 200资源和/或环境可以满足所需的配置,则OBMS 100可被配置为根据所需的配置保留和/或分配资源(框126)。在一些情况下,OBMS 100可被配置为设置DSS 200配置和/或执行任何引起的部署动作(框128)。在一些情况下,设置和/或部署动作可以包括尤其是自动创建与SLS关联的新逻辑存储实体(诸如逻辑单元、对象存储、文件系统实例,等等)。在一些情况下,每个逻辑存储实体与单个SLS关联。在一些情况下,部署动作可以包括一个或多个插件在一个或多个UDSP代理220上的部署(例如,安装)。
作为设置存储配置和/或执行任何引起的部署动作的一部分,相关的设置和/或部署动作请求可以被发送到UDSP代理205;在一些情况下,这种请求被发送到与存储相关资源相关联的UDSP代理205,其中的资源与所请求的设置和/或部署动作相关。在一些情况下,接收这种请求的UDSP代理205可被配置为关于请求要由DSS200使用的设置和/或部署来更新与其关联的数据存储库,如以下尤其是关于图5进一步详细描述的。在一些情况下,在部署之后,部署DSS 200的过程成功结束(框130)。
如果实际的DSS 200资源和/或环境不可以满足所需的配置,则OBMS 100可被配置为向用户(例如,系统管理员)发送消息,向该用户提供故障通知和/或关于要由该用户采取的校正动作的建议,以便允许所需的基础设施配置的实现(框120)。可选地,动作可以包括添加将允许成功的配置计算的基础设施资源。可选地,动作可以包括添加相关插件。可选地,动作可以涉及跨附加的和/或另选的位置延伸基础设施资源。要指出的是,本文所公开的建议仅仅是例子,并且其它建议可以附加地或另选地发布给用户。在一些情况下,OBMS100可被配置为做出关于所需的基础设施配置是否应当被重新评估(可选地是在某个间隔/延迟之后)的决定(框122)。如果是,则OBMS 100可被配置为返回到框112。可选地,如果设置成连续模式的话,则输出模块106自动前往112,可选地是在某个间隔/延迟之后。可选地,是否重试的决定是基于重试指令的用户输入。如果不是,则部署DSS 200的过程失败。在一些情况下,OBMS 100可被配置为报告失败。
要指出的是,参考图4,一些框可以集成到统一的框中或者被分成几个框,和/或其它框可以添加。此外,在一些情况下,框可以以与本文所述不同的次序执行。还应当指出的是,虽然流程图也是参考实现它们的系统元件描述的,但是这不意味着绑定,并且框可以由除本文所述的那些之外的元件执行。
在转向描述图5至10之前,要指出的是,关于图5-8和10所公开的主题仅仅是为了说明性目的而参考分布式存储系统来描述的。要强调的是,关于图5-8和10所公开的主题决不受限于分布式存储系统并且它加以必要的变更就可以在任何类型的存储系统上实现,包括本领域中已知的存储系统。
现在注意力转向图5,其中示出了示意性地示出根据目前公开的主题的某些例子的连接到分布式存储系统的示例性计算机节点的框图。
根据目前公开的主题的一些例子,计算机节点205可以包括一个或多个处理资源310。这一个或多个处理资源310可以是处理单元、微处理器、微控制器或者任何其它计算设备或模块,包括多个和/或并行和/或分布式处理单元,这些单元适于独立地或协作地处理数据,用于控制相关的计算机节点205的资源和/或连接到计算机节点205的存储相关的资源,并且用于启用与计算机节点205的资源和/或连接到计算机节点205的存储相关的资源相关的操作。
计算机节点205还可以包括一个或多个网络接口320(例如,网络接口卡、或者任何其它合适的设备),用于使计算机节点205能够尤其是与其它计算机节点和/或连接到DSS200的其它资源进行通信。
根据目前公开的主题的一些例子,计算机节点205可以与UDSP数据存储库330相关联,被配置为存储数据,包括尤其是各种用户定义的定义SLS的存储需求的数据、和/或与每个SLS关联的逻辑存储实体的数据、和/或与计算机节点205和/或连接到其的存储相关的资源相关的各种参数的数据、和/或关于参考DSS 200或者其部分的各种参数的数据、和/或关于DSS 200和环境(例如,客户端服务器218、网关资源216,等等)的动态行为的数据、和/或关于DSS 200设置和/或部署的数据、和/或任何其它数据。在一些情况下,UDSP数据存储库330还可被配置为启用所存储数据的检索、更新和删除。要指出的是,在一些情况下,UDSP数据存储库330可本地位于计算机节点205上、位于连接到计算机节点205的存储相关的资源上(例如,数据存储资源、高速缓存资源、或任何其它合适的资源)、位于客户端服务器218上、位于网关资源216上、或者任何其它合适的位置。在一些情况下,UDSP数据存储库330可在两个或更多个位置之间分布。在一些情况下,UDSP数据存储库330可以附加地或者另选地存储在DSS 200内的一个或多个逻辑存储实体上。在一些情况下,附加地或者另选地,UDSP数据存储库330可以在多个计算机节点之间共享。
根据目前公开的主题的一些例子,计算机节点205还可以包括可由例如一个或多个处理资源310执行的UDSP代理220。如以上所指示的,UDSP代理220可被配置为尤其是控制和管理计算机节点205和/或DSS 200的各种操作。DSP代理220可以包括以下模块当中一个或多个:任务管理模块335、插件管理模块340、SLS监视模块345和基于目标的配置模块390。
根据目前公开的主题的一些例子,任务管理模块335可被配置为管理接收到的任务,诸如数据路径操作(例如,读/写操作),如尤其是关于图8进一步详细描述的。
根据目前公开的主题的一些例子,插件管理模块340可被配置为使得能够把新插件引入到DSS 200中并且部署这种插件,如本文尤其是关于图6-7进一步详细描述的。在一些情况下,插件管理模块340还可被配置为确认插件,如本文尤其是关于图10进一步详细描述的。
根据目前公开的主题的一些例子,基于目标的配置模块390可被配置为配置和/或重新配置DSS 200,如尤其是关于图9详细描述的。
要指出的是,一个或多个处理资源310可被配置为执行UDSP代理220和其中所包括的任何模块。
要指出的是,根据目前公开的主题的一些例子,UDSP代理220模块的一些或全部可以组合并作为单个模块提供,或者,作为例子,它们当中至少一个可以以两个或更多个模块的形式实现。还要指出的是,在一些情况下,UDSP代理220可以附加地或者另选地安装在一个或多个网关资源216和/或客户端服务器218上,等等。在一些情况下,UDSP代理220的部分或修改版可以安装在网关资源216和/或客户端服务器218等上和/或被它们使用。
注意力转向图6,示出了根据目前公开的主题的为了把新的数据-路径相关插件引入分布式存储系统的插件层而执行的操作序列的一个例子的流程图。
根据目前公开的主题的一些例子,UDSP代理220(例如,利用插件管理模块340)可被配置为执行新数据-路径相关插件的引入过程400。为此,UDSP代理220可被配置为接收要引入到DSS 200的新数据-路径相关插件(框410)。要指出的是,在一些情况下,这种新数据-路径相关插件可以是由任何实体开发的任何软件扩展。还要指出的是,在一些情况下,这种新数据-路径相关插件可以利用尤其是专门为开发对DSS 200的软件扩展所设计的专用应用编程接口(API)来开发。
要指出的是,数据-路径是当执行与和逻辑存储实体关联的元数据和/或数据相关的动作时发生的一个或多个操作的集合。一个或多个操作(诸如像压缩、重复数据删除、加密,等等)的集合可以由数据-路径规范定义。
在一些情况下,UDSP代理220还可被配置为把新数据-路径相关插件引入到包括可被DSS 200使用的一个或多个插件的插件池中(框420)。
要指出的是,可选地,在一些情况下,在新数据-路径相关插件被引入到插件池中之前,UDSP代理220可被配置为确认插件满足某些需求(例如,它是由授权实体开发的,其目的被授权,插件本身的需求(例如某些资源在UDSP代理220上的存在)将在为各自的逻辑存储实体部署插件之后被满足,等等)。
要指出的是,参考图6,一些框可以集成到统一的框中或者被分成几个框,和/或其它框可以添加。还应当指出,虽然流程图也是参考实现它们的系统元件描述的,但是这不意味着绑定,并且框可以由除本文所述的那些之外的元件执行。
图7是示出根据目前公开的主题的为了在分布式存储系统上部署未经过确认的数据-路径相关插件而执行的操作序列的一个例子的流程图。
根据目前公开的主题的一些例子,UDSP代理220(例如,利用插件管理模块340)可被配置为执行为逻辑存储实体部署未经过确认的数据-路径相关插件的过程500。为此,UDSP代理220可被配置为接收要为一个或多个逻辑存储实体部署的未经过确认的数据-路径相关插件的指示(框510)。
要指出的是,在一些情况下,该指示可以通过从插件池内可用插件的列表中对期望的未经过确认的数据-路径相关插件的用户(例如,系统管理员,等等)选择来接收。在一些情况下,用户(例如,系统管理员,等等)可以从其进行选择的列表可以被过滤,以便只包括可以为每个逻辑存储实体部署的插件(例如,根据与逻辑存储实体关联的SLS、根据DSS200中可用的资源、根据做出选择的用户的某种分类,等等)。
UDSP代理220可以可选地还被配置为,对于它要为其进行部署的每个逻辑存储实体,检查是否为其部署指示的插件将造成违背与各自逻辑存储实体关联的各自SLS(或接近这种违背,例如,根据预定义的阈值,等等)(框520)。
要指出的是,在一些情况下,UDSP代理220可被配置为利用与(为某个逻辑存储单元)部署插件对其一个或多个SLS相关的参数的预测效果有关的数据。在一些情况下,这种数据可以基于从各自插件的之前部署得出的知识利用各种已知的统计方法和技术(例如,统计假设,等等)来计算。
在为任何逻辑存储实体部署所指示的插件造成违背(或接近这种违背,例如,根据预定义的阈值,等等)与各自逻辑存储实体关联的各自SLS的情况下,UDSP代理220可被配置为向各自逻辑存储单元所关联的用户(例如,系统管理员,等等)提供适当的通知(框530)。
可选地,UDSP代理220可以附加地或者另选地被配置为检查DSS 200的重新配置是否使插件的部署能够不违背(或接近这种违背,例如,根据预定义的阈值,等等)与各自逻辑存储实体关联的各自SLS。为此,UDSP代理220可被配置为执行重新配置过程700,该过程尤其参考图9加以必要的变更在本文进一步详细描述(例如,不是利用当前配置,它可以利用从插件部署所得出的配置)。
在为任何逻辑存储实体部署所指示的插件没有造成违背(或接近这种违背,例如,根据预定义的阈值,等等)与各自逻辑存储实体关联的各自SLS的情况下,UDSP代理220可被配置成为各自的逻辑存储实体部署所指示的插件(例如,在具有与各自的逻辑存储实体关联的至少一个UDSP代理220的至少一个计算机节点205上部署所指示的插件)并且生成包含插件的数据-路径规范,该规范定义数据-路径相关插件的操作(以及可选地,附加操作)(框540)。
但是,当所指示的插件保持(或变成)未经过确认的数据-路径相关插件时,UDSP代理220可被配置为建立(或维持)并行验证数据-路径规范,该规范不定义数据-路径相关插件的操作(框550)。因此,只要数据-路径相关插件未经过确认,每个操作(例如,读/写)或者在某些情况下与这种插件相关(例如,利用插件)的操作的至少一部分(例如,如关于图8进一步详细描述的),将利用两条并行的数据-路径执行——一条路径包括插件操作(包含插件的数据-路径,它包括由包含插件的数据-路径规范定义的操作)并且另一条不包括(验证数据-路径,它包括由验证数据-路径规范定义的操作),如关于图8进一步详细描述的。要指出的是,需要验证数据-路径来产生验证数据,该数据使得能够进行由包含插件的数据-路径生成的数据的确认。在一些情况下,在执行共同的任务之后,这两条数据-路径都被预期为生成包含相同信息的数据(即使由数据-路径中的一条或多条生成的数据被加密、重复数据删除、压缩或者以别的方式被操纵),并且在一些情况下,预期它们生成完全相同的数据。可以认识到的是,在一些情况下,并且作为非限制例,如果由数据-路径中的一条或多条生成的数据被加密、重复数据删除、压缩或者以别的方式被操纵,则可以执行逆操纵,以便如果需要的话就提取可比较的数据。
要指出的是,在预期两条数据-路径都生成完全相同的数据的情况下,可以需要两条数据-路径(根据各自的数据-路径规范)对数据执行共同的操作和/或操纵。因此,在需要未经过确认的数据-路径相关插件来对包含插件的数据-路径内的数据执行某个动作和/或操纵(例如,压缩、重复数据删除,等等)的情况下,验证数据-路径将包括经过确认的插件,经过确认的插件执行与由未经过确认的数据-路径相关插件对数据所执行的相同动作和/或操纵。
还要指出的是,在一些情况下,验证数据还使得能够进行校正由包含插件的数据-路径产生的数据,例如,在确认失败的情况下。
要指出的是,参考图7,一些框可以集成到统一的框中或者被分成几个框,和/或其它框可以添加。此外,在一些情况下,框可以以与本文所描述的不同的次序执行(例如,框550可以在框540之前执行,等等)。还要指出的是,一些框是可选的(例如,框520和530)。还应当指出的是,虽然流程图也是参考实现它们的系统元件描述的,但是这不意味着绑定,并且框可以由除本文所述的那些之外的元件执行。
图8是示出根据目前公开的主题的为了执行与数据-路径相关插件相关的任务而执行的操作序列的一个例子的流程图。
根据目前公开的主题的一些例子,UDSP代理220(例如,利用任务管理模块335)可被配置为执行任务执行过程600。为此,UDSP代理220可被配置为接收与未经过确认的数据-路径相关插件相关的任务(例如,利用未经过确认的数据-路径相关插件)(框610)。
在一些情况下,UDSP代理220可被配置为在包含插件的数据-路径上并在并行的验证数据-路径上执行任务,其中未经过确认的数据-路径相关插件在包含插件的数据-路径上操作,未经过确认的数据-路径相关插件不在并行的验证数据-路径上操作。
跟在所接收的任务在包含插件的数据-路径上和在验证数据-路径上执行之后,UDSP代理220可以利用验证数据来确认由包含插件的数据-路径生成的数据(框630)。如果数据有效,则过程结束(框640)。在一些情况下,跟在任务在两条并行的数据-路径上执行之后的数据有效性的指示被维持,例如,以指示这种成功任务执行的次数的计数器(成功的任务执行是其中从包含插件的数据-路径上的任务执行得出的数据利用从验证数据-路径上的任务执行得出的验证数据被确认的执行)。这种计数器可以随后用于未经过确认的数据-路径相关插件的评级(例如,当达到这种成功任务执行的某个数量时——未经过确认的数据-路径相关插件的等级可以增加)。
但是,如果发现数据无效,则UDSP代理220可被配置为执行一个或多个失败动作(框650)。在一些情况下,失败动作可以包括未经过确认的数据-路径相关插件从整个DSS200,并且在一些情况下还从其它DSS 200(例如,利用支持这种DSS 200的集合的中央服务)立即去除或禁用。在一些情况下,失败动作可以包括未经过确认的数据-路径从任务执行在其上进行的各自逻辑存储实体的立即去除或禁用。附加地或者另选地,失败动作可以包括利用验证数据,以便校正无效的数据。附加地或者另选地,失败动作可以包括向任务执行在其上进行的各自逻辑存储实体的用户(例如,系统管理员)发布通知(例如,指示失败)。附加地或者另选地,失败动作可以包括向为其部署未经过确认的数据-路径相关插件的任何逻辑存储实体的所有用户(例如,系统管理员)发布通知(例如,指示失败)。附加地或者另选地,失败动作可以包括向其它DSS 200发布(例如,通过支持这种DSS 200的集合的中央服务)通知(例如,指示失败)。附加地或者另选地,失败动作可以包括恢复到未经过确认的数据-路径相关插件的前一版本,如果这种版本存在的话。附加地或者另选地,失败动作可以包括降低未经过确认的数据-路径相关插件的等级。要指出的是,其它的和/或附加的失败动作可以发生。还要指出的是,在一些情况下,要执行什么失败动作的决定可以依赖于关于各自的插件和/或其开发者的各种历史数据(例如,在一些情况下,与指示插件的成功操作的更多历史数据关联的插件可以比与指示插件的成功操作的更少历史数据关联的插件被更宽容地对待,由开发了更多通过验证的插件的开发者开发的插件可以比由开发了更少通过验证的插件的开发者开发的插件被更宽容地对待,等等)。
在一些情况下,未经过确认的数据-路径相关插件的等级可以增加,尤其是每个预定的时间窗口和/或每个预定数量的任务成功执行和/或以别的方式。
要指出,可选地,在一些情况下,例如,根据未经过确认的数据-路径相关插件的等级,不是与未经过确认的数据-路径相关插件相关的每个任务都在两条并行的数据-路径上执行。在一些情况下,只有一些这种任务在两条并行的数据-路径上执行。在一些情况下,未经过确认的数据-路径相关插件的等级越高,则在两条并行的数据-路径上执行的任务数量越低。在一些情况下,只有每个预定数量的执行(例如,每两次执行、每十次执行,或者每个其它预定数量的执行),任务才在两条并行的数据-路径上都执行。在一些情况下,每个预定义的时间间隔,例如,如由外部实体确定和控制的,任务在两条并行的数据-路径上都执行。
要指出的是,参考图8,一些框可以集成到统一的框中或者被分成几个框,和/或其它框可以添加。还应当指出的是,虽然流程图也是参考实现它们的系统元件描述的,但是这不意味着绑定,并且框可以由除本文所述的那些之外的元件执行。
图9是示出根据目前公开的主题的为了管理分布式存储系统的重新配置而执行的操作序列的一个例子的流程图。
根据目前公开的主题的一些例子,在一些情况下,可以执行检查是否需要DSS 200的重新配置的重新配置过程900。在一些情况下,这种检查可以周期性地(例如,根据预定义的时间间隔,例如,每分钟、每五分钟、每小时、或者任何其它预定义的时间间隔)、连续地(例如,在重复的循环中,等等)、跟在触发事件之后(例如,所监视的参数超过预定义或计算的阈值,从与计算机节点205关联的UDSP代理220接收到建议,如尤其是关于图10详细描述的,等等)等等来执行。
如本文所指示的,在一些情况下,与计算机节点205关联的每个UDSP代理220可被配置为执行重新配置过程700,例如,在利用基于目标的配置模块390时。在一些情况下,与一个或多个计算机节点205(例如,专用的计算机节点)关联的UDSP代理220可以负责执行重新配置过程700,例如,在利用基于目标的配置模块390时。
在一些情况下,基于目标的配置模块390可被配置为接收以下任何一个或者其任意组合:与DSS 200中的一个或多个逻辑存储实体关联的SLS、指示DSS 200及其资源和环境的动态行为的数据、指示DSS 200的当前配置的数据、关于DSS 200的统计数据和历史数据,等等(框710)。要指出的是,在一些情况下,数据的全部或部分可以附加地或者另选地从与重新配置过程900在其上执行的计算机节点205关联的UDSP数据存储库330检索。
在一些情况下,基于目标的配置模块390可被配置为利用所接收到的数据检查是否有任何SLS被违背(或者接近被违背,例如,根据预定义的阈值,等等)和/或是否存在执行DSS 200的重新配置的任何其它原因(例如,不考虑SLS,未能执行一个或多个指定,等等)(框720)。
要指出的是,在一些情况下,每次SLS被违背时(应当指出,SLS的违背有时可以包括接近这种违背,例如,根据预定义的阈值,等等),DSS 200的重新配置可以被启动。在其它情况下,DSS的这种重新配置可以依赖于满足某种预定义的标准来启动。这种标准可以是例如预定义数量的被检测到SLS违背需要被满足,或者在预定义的时间帧内或者不考虑时间,等等。因此,例如,示例性标准可以是三次SLS违背的检测,或者一天内三次SLS违背的检测,等等。在一些情况下,违背的重要性可以附加地或者另选地被认为是标准。为此,基于目标的配置模块390可被配置为利用与DSS 200相关的统计数据和历史数据。
在存在重新配置DSS 200的需求的情况下,基于目标的配置模块390可被配置为激活基于目标的管理系统(OBMS)100,用于执行DSS 200配置过程,如以上尤其是关于图2-4详细描述的(框730)。要指出的是,如本文所指示的,在DSS 200重新配置的情况下,OBMS 100可以接收DSS 200的当前配置作为用于配置过程的输入的一部分并且在重新配置DSS 200时把它考虑在内。在一些情况下,在这种重新配置期间,OBMS 100可被配置为保留和/或分配和/或重新分配和/或释放资源的全部或部分。
要指出的是,在一些情况下,作为重新配置DSS 200的附加或另选,基于目标的配置模块390可被配置为执行一个或多个与SLS相关的校正动作。在一些情况下,与SLS相关的校正动作可以包括未经过确认的数据-路径相关插件从整个DSS 200(包括为其部署DSS200的任何逻辑存储实体),并且在一些情况下也从其它DSS 200(例如,利用支持这种DSS200的集合的中央服务)的立即去除。在一些情况下,与SLS相关的校正动作可以包括未经过确认的数据-路径从任务执行在其上进行的各自逻辑存储实体的立即去除。附加地或者另选地,与SLS相关的校正动作可以包括向各自逻辑存储实体的用户(例如,系统管理员)发布通知(例如,指示违背或者接近违背)。附加地或者另选地,与SLS相关的校正动作可以包括向为其部署未经过确认的数据-路径相关插件的任何逻辑存储实体的所有用户(例如,系统管理员)发布通知(例如,指示违背或者接近违背)。附加地或者另选地,与SLS相关的校正动作可以包括向其它DSS 200发布通知(例如,指示失败)(例如,通过支持这种DSS 200的集合的中央服务)。附加地或者另选地,与SLS相关的校正动作可以包括恢复到未经过确认的数据-路径相关插件的前一版本,如果这种前一版本存在的话。附加地或者另选地,与SLS相关的校正动作可以包括降低未经过确认的数据-路径相关插件的等级。要指出的是,其它的和/或附加的与SLS相关的校正动作可以发生。还要指出的是,在一些情况下,要执行什么与SLS相关的校正动作的决定可以依赖于关于各自的插件和/或其开发者的各种历史数据(例如,在一些情况下,与指示插件成功操作的更多历史数据关联的插件可以比与指示插件成功操作的更少历史数据关联的插件被更宽容地对待;由开发了更多经过验证的插件的开发者开发的插件可以比由开发了更少经过验证的插件的开发者开发的插件被更宽容地对待,等等)。
返回图9,如果没有SLS被违背(或者接近被违背)并且没有执行重新配置的其它原因,或者在DSS 200的重新配置的启动之后,重新配置过程900结束(框740)。
要指出的是,参考图9,一些框可以集成到统一的框中或者被分成几个框,和/或其它框可以添加。还应当指出的是,虽然流程图也是参考实现它们的系统元件描述的,但是这不意味着绑定,并且框可以由除本文所述的那些之外的元件执行。
图10是示出根据目前公开的主题的为了确认数据-路径相关插件而执行的操作序列的一个例子的流程图。
根据目前公开的主题的一些例子,UDSP代理220(例如,利用任务管理模块335)可被配置为对未经过确认的数据-路径相关插件执行确认过程800。为此,UDSP代理220可被配置为检查对未经过确认的数据-路径相关插件的确认是否完成(框810)。在一些情况下,这种检查可以周期性地(例如,根据预定义的时间间隔,例如,每分钟、每五分钟、每小时或者任何其它预定义的时间间隔)、连续地(例如,在重复的循环中,等等)、在触发事件之后(例如,在任务的成功执行之后、在未经过确认的数据-路径相关插件的等级增加之后,等等)等等来执行。
在一些情况下,插件确认在关于相应插件的预定次数的成功任务执行之后完成。另选地或者附加地,插件确认在利用未经过确认的数据-路径生成的某个(例如,预定)量的数据被成功验证之后完成。另选地或者附加地,插件确认在由用户(例如,系统管理员)授权之后完成。要指出的是,在一些情况下,其它参数和/或标准可以用于确定确认是否完成。
如果确认没有完成,则过程结束(框850)。但是,如果确认完成,并且数据-路径相关插件经过确认,则UDSP代理220可被配置为从相应逻辑存储实体去除验证数据-路径规范(框830)并且执行一个或多个确认动作(框840)。在一些情况下,确认动作可以包括增加现在经过确认的数据-路径相关插件的等级。在一些情况下,确认动作可以附加地或另选地包括从整个DSS 200(包括为其部署DSS 200的任何逻辑存储实体),并且在一些情况下还从其它DSS 200(例如,利用支持这种DSS 200的集合的中央服务)去除与现在经过确认的数据-路径相关插件相关的任何验证数据-路径规范。附加地或者另选地,确认动作可以包括向任务执行在其上进行的相应逻辑存储实体的用户(例如,系统管理员)发布通知(指示插件的确认)。附加地或者另选地,确认动作可以包括向为其部署现在经过确认的数据-路径相关插件的任何逻辑存储实体的所有用户(例如,系统管理员)发布通知(指示插件的确认)。附加地或者另选地,确认动作可以包括向其它DSS 200发布通知(例如,指示失败)(例如,通过支持这种DSS 200的集合的中央服务)。
要指出的是,参考图10,一些框可以集成到统一的框中或者被分成几个框,和/或其它框可以添加。此外,在一些情况下,框可以以与本文所描述的不同的次序执行(例如,框840可以在框830之前执行,等等)。还应当指出,虽然流程图也是参考实现它们的系统元件描述的,但是这不意味着绑定,并且框可以由除本文所述的那些之外的元件执行。
要理解,目前公开的主题的应用不限于在本文所包含的描述中进行阐述或者在附图中示出的细节。目前公开的主题能够有其它实施例并且能够以各种方式被实践和执行。由此,要理解,本文所采用的短语和术语是为了描述并且不应当被认为是限制。照此,本领域技术人员将认识到,本公开内容所基于的概念可以很容易地被用作设计用于执行目前公开的主题的几个目的的其它结构、方法和系统的基础。
还要理解,根据目前公开的主题的系统可以至少部分地被实现为合适地被编程的计算机。同样,目前公开的主题预期可由计算机读取以执行所公开的方法的计算机程序。目前公开的主题还预期具体体现可由机器执行以执行所公开的方法的指令程序的机器可读存储器。

Claims (21)

1.一种用于为存储系统的逻辑存储实体部署数据-路径相关插件的方法,该方法包括:
为所述逻辑存储实体部署所述数据-路径相关插件,其中数据-路径是当执行与关联于逻辑存储实体的元数据和/或数据相关的动作时发生的一个或多个操作的集合,所述部署包括创建包含插件的数据-路径规范,并且其中所述包含插件的数据-路径规范包括数据-路径相关插件的操作;及
创建验证数据-路径规范,其中所述验证数据-路径规范不包括数据-路径相关插件的操作,并且其中在具有所述验证数据-路径规范的验证数据-路径中执行的任务生成使得能够对由所述任务在具有所述包含插件的数据-路径规范的包含插件的数据-路径中执行而生成的给定数据进行确认的验证数据。
2.如权利要求1所述的方法,其中数据-路径相关插件选自存储在与存储系统相关联的插件池中的数据-路径相关插件的列表。
3.如权利要求1所述的方法,还包括检查所述部署是否将不导致与逻辑存储实体相关联的服务等级规范(SLS)的违背,并且其中如果所述检查指示所述部署将不导致所述SLS的违背,则所述部署和所述创建验证数据-路径规范被执行。
4.如权利要求1所述的方法,还包括:
在所述包含插件的数据-路径上和在所述验证数据-路径上执行给定的任务,产生所述给定数据和所述验证数据;
利用所述验证数据验证所述给定数据;及
如果所述验证失败,则执行一个或多个失败动作。
5.如权利要求4所述的方法,其中如果所述验证数据包含与所述给定数据中所包含的信息完全相同的信息,则所述验证是成功的。
6.如权利要求5所述的方法,其中如果所述验证数据与所述给定数据完全相同,则所述验证是成功的。
7.如权利要求4所述的方法,其中所述一个或多个失败动作包括以下动作当中的一个或多个:
(a)从逻辑存储实体去除未经过确认的数据-路径相关插件;
(b)对于逻辑存储实体禁用未经过确认的数据-路径相关插件;
(c)利用验证数据校正给定数据;
(d)向逻辑存储实体的用户发布指示失败的通知;
(e)如果存在未经过确认的数据-路径相关插件的任何之前的版本,则恢复到之前的版本;
(f)降低与未经过确认的数据-路径相关插件相关联的等级。
8.如权利要求1所述的方法,还包括,如果未经过确认的数据-路径相关插件的确认完成,则去除验证数据-路径并且执行一个或多个确认动作。
9.如权利要求8所述的方法,其中所述确认动作包括以下动作当中的一个或多个:
(a)增加与未经过确认的数据-路径相关插件相关联的等级;
(b)向逻辑存储实体的用户发布指示确认完成的通知。
10.如权利要求3所述的方法,其中所述存储系统是分布式存储系统,并且其中如果所述检查指示所述部署将导致所述SLS的违背,则该方法还包括:
接收与分布式存储系统的动态行为相关的动态行为参数数据;
至少基于所述至少一个SLS、与连接到所述分布式存储系统的基础设施层的存储相关资源相关的存储相关资源参数数据、以及动态行为参数数据,为分布式存储系统计算重新配置;及
根据计算出的重新配置自动分配所述存储相关资源之一的至少一部分。
11.一种包括被配置为执行统一分布式存储平台(UDSP)代理的至少一个处理资源的计算机节点,其中所述UDSP代理被配置为:
为逻辑存储实体部署数据-路径相关插件,其中数据-路径是当执行与关联于逻辑存储实体的元数据和/或数据相关的动作时发生的一个或多个操作的集合,所述部署包括创建包含插件的数据-路径规范,并且其中所述包含插件的数据-路径规范包括数据-路径相关插件的操作;及
创建验证数据-路径规范,其中所述验证数据-路径规范不包括数据-路径相关插件的操作,并且其中在具有所述验证数据-路径规范的验证数据-路径中执行的任务生成使得能够对由所述任务在具有所述包含插件的数据-路径规范的包含插件的数据-路径中执行而生成的给定数据进行确认的验证数据。
12.如权利要求11所述的计算机节点,其中数据-路径相关插件选自存储在与存储系统相关联的插件池中的数据-路径相关插件的列表。
13.如权利要求11所述的计算机节点,其中所述UDSP代理还被配置为检查所述部署是否将不导致与逻辑存储实体相关联的服务等级规范(SLS)的违背,并且其中如果所述检查指示所述部署将不导致所述SLS的违背,则所述部署和所述创建验证数据-路径规范被执行。
14.如权利要求11所述的计算机节点,其中所述UDSP代理还被配置为:
在所述包含插件的数据-路径上和在所述验证数据-路径上执行给定的任务;
利用所述验证数据验证所述给定数据;及
如果所述验证失败,则执行一个或多个失败动作。
15.如权利要求14所述的计算机节点,其中如果所述验证数据包含与所述给定数据中所包含的信息完全相同的信息,则所述验证是成功的。
16.如权利要求15所述的计算机节点,其中如果所述验证数据与所述给定数据完全相同,则所述验证是成功的。
17.如权利要求14所述的计算机节点,其中所述一个或多个失败动作包括以下动作当中的一个或多个:
(a)从逻辑存储实体去除未经过确认的数据-路径相关插件;
(b)对于逻辑存储实体禁用未经过确认的数据-路径相关插件;
(c)利用验证数据校正给定数据;
(d)向逻辑存储实体的用户发布指示失败的通知;
(e)如果存在未经过确认的数据-路径相关插件的任何之前的版本,则恢复到之前的版本;
(f)降低与未经过确认的数据-路径相关插件相关联的等级。
18.如权利要求11所述的计算机节点,其中如果未经过确认的数据-路径相关插件的确认完成,则所述UDSP代理还被配置为去除验证数据-路径并且执行一个或多个确认动作。
19.如权利要求18所述的计算机节点,其中所述确认动作包括以下动作当中的一个或多个:
(a)增加与未经过确认的数据-路径相关插件相关联的等级;
(b)向逻辑存储实体的用户发布指示确认完成的通知。
20.如权利要求13所述的计算机节点,其中所述存储系统是分布式存储系统,并且其中如果所述检查指示所述部署将导致所述SLS的违背,则所述UDSP代理还被配置为:
接收与分布式存储系统的动态行为相关的动态行为参数数据;
至少基于所述至少一个SLS、与连接到所述分布式存储系统的基础设施层的存储相关资源相关的存储相关资源参数数据、以及动态行为参数数据,为分布式存储系统计算重新配置;及
根据计算出的重新配置自动分配所述存储相关资源之一的至少一部分。
21.一种用于为存储系统的逻辑存储实体部署数据-路径相关插件的装置,该装置包括:
用于为所述逻辑存储实体部署所述数据-路径相关插件的部件,其中数据-路径是当执行与关联于逻辑存储实体的元数据和/或数据相关的动作时发生的一个或多个操作的集合,所述部署包括创建包含插件的数据-路径规范,并且其中所述包含插件的数据-路径规范包括数据-路径相关插件的操作;及
用于创建验证数据-路径规范的部件,其中所述验证数据-路径规范不包括数据-路径相关插件的操作,并且其中在具有所述验证数据-路径规范的验证数据-路径中执行的任务生成使得能够对由所述任务在具有所述包含插件的数据-路径规范的包含插件的数据-路径中执行而生成的给定数据进行确认的验证数据。
CN201480016992.5A 2013-03-21 2014-01-19 部署数据‑路径相关插件 Active CN105074660B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361803868P 2013-03-21 2013-03-21
US61/803,868 2013-03-21
PCT/IL2014/050063 WO2014147607A1 (en) 2013-03-21 2014-01-19 Deploying data-path-related plugins

Publications (2)

Publication Number Publication Date
CN105074660A CN105074660A (zh) 2015-11-18
CN105074660B true CN105074660B (zh) 2017-12-15

Family

ID=51579384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480016992.5A Active CN105074660B (zh) 2013-03-21 2014-01-19 部署数据‑路径相关插件

Country Status (7)

Country Link
US (2) US9612851B2 (zh)
EP (1) EP2976711A4 (zh)
JP (1) JP2016519364A (zh)
CN (1) CN105074660B (zh)
AU (2) AU2014233753A1 (zh)
SG (1) SG11201507645XA (zh)
WO (1) WO2014147607A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9705751B1 (en) * 2016-03-31 2017-07-11 Sas Institute Inc. System for calibrating and validating parameters for optimization
US10599559B2 (en) 2016-11-22 2020-03-24 International Business Machines Corporation Validating a software defined storage solution based on field data
US10169019B2 (en) 2016-11-22 2019-01-01 International Business Machines Corporation Calculating a deployment risk for a software defined storage solution
US11163626B2 (en) 2016-11-22 2021-11-02 International Business Machines Corporation Deploying a validated data storage deployment
US10599524B2 (en) * 2017-04-28 2020-03-24 Veritas Technologies Llc Backup performance after backup failure
US10558556B2 (en) * 2017-06-19 2020-02-11 Cisco Technology, Inc. Introspective fault and workload injection for service assurance
CN113986254B (zh) * 2020-07-27 2024-10-15 阿里巴巴集团控股有限公司 微前端系统、生成方法及服务器系统
EP4407840A1 (en) 2023-01-30 2024-07-31 Siemens Gamesa Renewable Energy A/S Electric generator for a wind turbine, component for an electric generator for a wind turbine and wind turbine

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1306754A1 (en) * 2001-10-23 2003-05-02 Telefonaktiebolaget L M Ericsson (Publ) Device and method for software maintenance
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396635A (en) 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5987505A (en) 1995-04-28 1999-11-16 Fry; Shawn C. Method for emulation of terminal-resident GUI application by transmitting macros having information and command instructing the terminal how to process the information
US6538669B1 (en) 1999-07-15 2003-03-25 Dell Products L.P. Graphical user interface for configuration of a storage system
US7463648B1 (en) 1999-08-23 2008-12-09 Sun Microsystems, Inc. Approach for allocating resources to an apparatus based on optional resource requirements
US7685577B2 (en) * 2000-09-01 2010-03-23 Op40, Inc. System and method for translating an asset for distribution over multi-tiered networks
US20030074207A1 (en) * 2000-09-01 2003-04-17 Pace Charles P. Method and system for deploying an asset over a multi-tiered network
US20030084134A1 (en) * 2000-09-01 2003-05-01 Pace Charles P. System and method for bridging assets to network nodes on multi-tiered networks
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
JP2002182859A (ja) 2000-12-12 2002-06-28 Hitachi Ltd ストレージシステムおよびその利用方法
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
JP4083997B2 (ja) 2001-04-16 2008-04-30 株式会社日立製作所 レンタルストレージのサービス方法、および、レンタルストレージシステム
JP4434543B2 (ja) 2002-01-10 2010-03-17 株式会社日立製作所 分散ストレージシステム、ストレージ装置、およびデータのコピー方法
US20030135609A1 (en) 2002-01-16 2003-07-17 Sun Microsystems, Inc. Method, system, and program for determining a modification of a system resource configuration
US6907501B2 (en) 2002-01-25 2005-06-14 Ntt Docomo Inc. System for management of cacheable streaming content in a packet based communication network with mobile hosts
JP2003296039A (ja) 2002-04-02 2003-10-17 Hitachi Ltd クラスタ構成記憶システム及び制御方法
US20030217358A1 (en) * 2002-05-17 2003-11-20 Sun Microsystems, Inc. Method, system, and article of manufacture for firmware downloads
US7475107B2 (en) 2002-07-08 2009-01-06 Electronic Evidence Discovery, Inc. System and method for managing distributed computer processes
US7020758B2 (en) 2002-09-18 2006-03-28 Ortera Inc. Context sensitive storage management
US7240115B2 (en) 2002-12-10 2007-07-03 International Business Machines Corporation Programmatically allocating memory among competing services in a distributed computing environment
US7159093B2 (en) 2002-12-20 2007-01-02 Veritas Operating Corporation Development of a detailed logical volume configuration from high-level user requirements
US7594002B1 (en) 2003-02-14 2009-09-22 Istor Networks, Inc. Hardware-accelerated high availability integrated networked storage system
US20040230753A1 (en) 2003-05-16 2004-11-18 International Business Machines Corporation Methods and apparatus for providing service differentiation in a shared storage environment
JP4418286B2 (ja) 2003-07-14 2010-02-17 富士通株式会社 分散型ストレージシステム
US20050027938A1 (en) 2003-07-29 2005-02-03 Xiotech Corporation Method, apparatus and program storage device for dynamically resizing mirrored virtual disks in a RAID storage system
JP2005050007A (ja) 2003-07-31 2005-02-24 Hitachi Ltd ストレージシステムおよびその利用方法
US7577806B2 (en) 2003-09-23 2009-08-18 Symantec Operating Corporation Systems and methods for time dependent data storage and recovery
US20050081086A1 (en) 2003-10-10 2005-04-14 Xiotech Corporation Method, apparatus and program storage device for optimizing storage device distribution within a RAID to provide fault tolerance for the RAID
GB0401246D0 (en) 2004-01-21 2004-02-25 Ibm Method and apparatus for controlling access to logical units
US7702757B2 (en) 2004-04-07 2010-04-20 Xiotech Corporation Method, apparatus and program storage device for providing control to a networked storage architecture
WO2005107204A1 (en) 2004-05-04 2005-11-10 Telecom Italia S.P.A. Method and system for access control in distributed object-oriented systems
US7580959B2 (en) 2004-06-14 2009-08-25 International Business Machines Corporation Apparatus, system, and method for providing efficient disaster recovery storage of data using differencing
US20050283682A1 (en) * 2004-06-18 2005-12-22 Hitachi, Ltd. Method for data protection in disk array systems
US7526534B2 (en) * 2004-07-16 2009-04-28 Cassatt Corporation Unified system services layer for a distributed processing system
GB0426309D0 (en) 2004-11-30 2004-12-29 Ibm Method and system for error strategy in a storage system
US20060236061A1 (en) 2005-04-18 2006-10-19 Creek Path Systems Systems and methods for adaptively deriving storage policy and configuration rules
US7844968B1 (en) 2005-05-13 2010-11-30 Oracle America, Inc. System for predicting earliest completion time and using static priority having initial priority and static urgency for job scheduling
US7525957B2 (en) 2005-09-01 2009-04-28 Emulex Design & Manufacturing Corporation Input/output router for storage networks
US20070240134A1 (en) * 2006-02-28 2007-10-11 Joydeep Buragohain Software packaging model supporting multiple entity types
US20070234118A1 (en) 2006-03-30 2007-10-04 Sardella Steven D Managing communications paths
US7434002B1 (en) 2006-04-24 2008-10-07 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US7487383B2 (en) 2006-06-29 2009-02-03 Dssdr, Llc Data transfer and recovery process
WO2008038271A1 (en) 2006-09-28 2008-04-03 Xeround Systems Ltd. An apparatus and method for a distributed storage global database
US8782277B2 (en) 2006-10-12 2014-07-15 Siemens Product Lifecycle Management Software Inc. System and method for time-sensitive URI mapping
CN101188569B (zh) 2006-11-16 2011-05-04 饶大平 在网络上构建数据量子空间的方法及分布式文件存储系统
US8302087B2 (en) 2007-01-05 2012-10-30 International Business Machines Corporation Quality assurance in software systems through autonomic reliability, availability and serviceability code generation
US7873805B2 (en) 2007-02-23 2011-01-18 Lewis, Rice & Fingersh, L.C. Data recovery systems and methods
US8276167B2 (en) 2007-03-21 2012-09-25 International Business Machines Corporation Distributed pluggable middleware services
US7861111B2 (en) 2007-06-15 2010-12-28 Savvis, Inc. Shared data center disaster recovery systems and methods
DE602007006932D1 (de) * 2007-06-22 2010-07-15 Software Ag Datenbanksystem und Verfahren zur externen Datensicherung
JP2009020568A (ja) 2007-07-10 2009-01-29 Hitachi Ltd ストレージシステム及びディザスタリカバリ構成の設計方法
US20090055689A1 (en) 2007-08-21 2009-02-26 International Business Machines Corporation Systems, methods, and computer products for coordinated disaster recovery
US9652210B2 (en) * 2007-08-28 2017-05-16 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
US8332375B2 (en) 2007-08-29 2012-12-11 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
EP2225662A4 (en) 2007-11-21 2011-06-22 Nortel Networks Ltd METHOD OF ENSURING THE CONTINUITY OF TUNNEL COMMUNICATIONS FOR MOBILE NUTS HAVING SEVERAL TEMPORARY ADDRESSES
US8127307B1 (en) * 2007-12-31 2012-02-28 Emc Corporation Methods and apparatus for storage virtualization system having switch level event processing
US8103775B2 (en) 2008-03-13 2012-01-24 Harris Corporation System and method for distributing a client load from a failed server among remaining servers in a storage area network (SAN)
US8261354B2 (en) * 2008-09-17 2012-09-04 International Business Machines Corporation System, method and program product for dynamically performing an audit and security compliance validation in an operating environment
US8413139B2 (en) * 2009-03-11 2013-04-02 Microsoft Corporation Programming model for application and data access and synchronization within virtual environments
US7992031B2 (en) 2009-07-24 2011-08-02 International Business Machines Corporation Automated disaster recovery planning
US9767031B2 (en) 2009-10-23 2017-09-19 International Business Machines Corporation Dynamic structural management of a distributed caching infrastructure
US8194339B2 (en) 2010-07-29 2012-06-05 Lsi Corporation Write performance monitor in a storage device
EP2651072A3 (en) 2010-09-20 2013-10-23 Security First Corp. Systems and methods for secure data sharing
US20120117041A1 (en) * 2010-11-08 2012-05-10 Verisign, Inc. Debugging a stored procedure in a database
EP2663891A4 (en) * 2011-01-10 2017-07-19 Storone Ltd. Large scale storage system
US9128773B2 (en) * 2011-02-25 2015-09-08 International Business Machines Corporation Data processing environment event correlation
US9015823B2 (en) * 2011-11-15 2015-04-21 Nicira, Inc. Firewalls in logical networks
US9336251B2 (en) * 2011-11-23 2016-05-10 Nec Corporation System and method for SLA-aware database consolidation using per-tenant memory size configuration
US9319274B1 (en) * 2012-03-29 2016-04-19 Emc Corporation Method and system for dynamic provisioning using server dormant mode for virtual server dormancy
US9158499B2 (en) * 2012-04-30 2015-10-13 Freescale Semiconductor, Inc Cryptographic processing with random number generator checking
US9003395B2 (en) * 2012-08-10 2015-04-07 Adobe Systems Incorporated Directing plug-in updates for a software application to a target audience using manifest parameters
US9471436B2 (en) * 2013-04-23 2016-10-18 Facebook, Inc. Use of incremental checkpoints to restore user data stream processes
US20150127995A1 (en) * 2013-11-01 2015-05-07 Commvault Systems, Inc. Systems and methods for differential health checking of an information management system
US9659108B2 (en) * 2013-12-02 2017-05-23 Qbase, LLC Pluggable architecture for embedding analytics in clustered in-memory databases
US20160283304A1 (en) * 2013-12-20 2016-09-29 Hitachi, Ltd. Performance prediction method, performance prediction system and program
US9900215B2 (en) * 2014-11-13 2018-02-20 Microsoft Technology Licensing, Llc Automatically recommending point of presence centers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
EP1306754A1 (en) * 2001-10-23 2003-05-02 Telefonaktiebolaget L M Ericsson (Publ) Device and method for software maintenance

Also Published As

Publication number Publication date
CN105074660A (zh) 2015-11-18
US9612851B2 (en) 2017-04-04
AU2014101656A4 (en) 2019-08-01
US10169021B2 (en) 2019-01-01
AU2014233753A1 (en) 2015-10-01
WO2014147607A1 (en) 2014-09-25
US20160026481A1 (en) 2016-01-28
EP2976711A1 (en) 2016-01-27
JP2016519364A (ja) 2016-06-30
SG11201507645XA (en) 2015-10-29
US20170161045A1 (en) 2017-06-08
EP2976711A4 (en) 2016-09-14

Similar Documents

Publication Publication Date Title
CN105074660B (zh) 部署数据‑路径相关插件
US20210373761A1 (en) Leveraging Distinct Storage Tiers In A Virtual Storage System
US11888846B2 (en) Configuring storage systems in a fleet of storage systems
US10884636B1 (en) Presenting workload performance in a storage system
US11861188B2 (en) System having modular accelerators
US11652884B2 (en) Customized hash algorithms
WO2021011051A1 (en) Data recovery in a virtual storage system
US12014065B2 (en) Multi-cloud orchestration as-a-service
EP4058919A1 (en) Creating a replica of a storage system
US11507597B2 (en) Data replication to meet a recovery point objective
US11442669B1 (en) Orchestrating a virtual storage system
US20220334929A1 (en) Ensuring timely restoration of an application
US10929053B2 (en) Safe destructive actions on drives
US20210110055A1 (en) Data Deletion for a Multi-Tenant Environment
WO2019226652A1 (en) Auto-scaling a software application
US20220365721A1 (en) Compliance Monitoring Event-based Driving of an Orchestrator by a Storage System
US11861185B2 (en) Protecting sensitive data in snapshots
US20220317912A1 (en) Non-Disruptively Moving A Storage Fleet Control Plane
EP4091042A1 (en) Ensuring compliance with geography-based data movement restrictions
WO2023070025A1 (en) Declarative provisioning of storage
US20210216627A1 (en) Mitigation of Malicious Operations with Respect to Storage Structures
US20240045609A1 (en) Protection of Objects in an Object-based Storage System
US20230205591A1 (en) System Having Dynamic Power Management
KR20240137670A (ko) 에지 가속기 카드
US11989429B1 (en) Recommending changes to a storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant