CN107924334B - 弹性命名分布式循环缓冲区的重新平衡和弹性存储方案 - Google Patents

弹性命名分布式循环缓冲区的重新平衡和弹性存储方案 Download PDF

Info

Publication number
CN107924334B
CN107924334B CN201680045634.6A CN201680045634A CN107924334B CN 107924334 B CN107924334 B CN 107924334B CN 201680045634 A CN201680045634 A CN 201680045634A CN 107924334 B CN107924334 B CN 107924334B
Authority
CN
China
Prior art keywords
storage
logical
storage unit
physical
physical storage
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
CN201680045634.6A
Other languages
English (en)
Other versions
CN107924334A (zh
Inventor
马苏德·莫塔扎维
古池阳
施广宇
斯蒂芬·摩根
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN107924334A publication Critical patent/CN107924334A/zh
Application granted granted Critical
Publication of CN107924334B publication Critical patent/CN107924334B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

一种由网络中的网元(network element,简称NE)实现的方法,包括:通过以下方式构建第一网络存储实体:根据与多个物理存储单元相关联的第一存储度量将多个逻辑存储单元映射到物理存储系统中的所述多个物理存储单元;依次排列所述多个逻辑存储单元以形成逻辑循环缓冲区;指定用于写入数据的当前逻辑存储单元和用于在所述当前逻辑存储单元已写满之后写入数据的即将到来的逻辑存储单元;当所述物理存储系统通过根据与所述多个物理存储单元相关联的第二存储度量将至少一个逻辑存储单元重新定位到不同的物理存储单元来主动地进行网络存储操作时,重新平衡所述物理存储系统。

Description

弹性命名分布式循环缓冲区的重新平衡和弹性存储方案
相关申请案交叉申请
本申请要求于2015年8月5日递交的发明名称为“弹性命名分布式循环缓冲区的重新平衡和弹性存储方案”的第14/818,664号美国申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
背景技术
可以预计的是,物联网(Internet of Things,简称IoT)的增长会导致可用于描述世界的数据量急剧增加。随着数据量的增加,用户通过备份和复制来寻求保存和/或保护数据,从而将存储需求推动到更高的水平。满足日益增长的数据存储需求的一种方法是添加额外的存储单元(例如,存储盘)和/或优化存储容量。向在线存储系统添加额外的存储单元可能会导致重新平衡数据存储或跨存储单元重新分配数据的重大挑战。此外,存储单元中存储的数据的增加量可能导致性能恶化,例如读取和/或写入吞吐量和/或延迟。因此,除了存储容量分配之外,性能优化可能是重新平衡数据存储的另一个目标。此外,IoT数据的兴趣度通常随时间推移而下降。因此,弹性可能是数据的另一重要方面。
发明内容
在一实施例中,本发明包括一种由网络中的网元(network element,简称NE)实现的方法,包括:通过以下方式构建第一网络存储实体:根据与多个物理存储单元相关联的第一存储度量将多个逻辑存储单元映射到物理存储系统中的所述多个物理存储单元;依次排列所述多个逻辑存储单元以形成逻辑循环缓冲区;指定用于写入数据的当前逻辑存储单元和用于在所述当前逻辑存储单元已写满之后写入数据的即将到来的逻辑存储单元;当所述物理存储系统通过根据与所述多个物理存储单元相关联的第二存储度量将至少一个逻辑存储单元重新定位到不同的物理存储单元来主动地进行网络存储操作时,重新平衡所述物理存储系统。
在另一实施例中,本发明包括一种装置,包括:接收器,用于:通过存储网络耦合到多个物理存储单元;接收包括创建网络存储实体的请求的存储请求消息;接收包括调整所述网络存储实体的存储容量的请求的存储大小调整消息;处理器,与所述接收器耦合,用于:根据所述存储请求消息通过以下方式构建所述网络存储实体:根据存储度量将多个逻辑存储单元映射到所述多个物理存储单元的一部分;依次排列所述逻辑存储单元以形成逻辑循环缓冲区;通过调整所述逻辑循环缓冲区中的逻辑存储单元的数量,根据所述存储大小调整消息动态地调整所述网络存储实体的存储容量。
在另一实施例中,本发明包括一种装置,包括:接收器,用于:耦合到存储网络中的多个物理存储单元;接收包括创建网络存储实体的请求的存储请求消息;处理器,与所述接收器耦合,用于:根据所述存储请求消息,将分布在所述物理存储单元上的多个逻辑存储单元分配给所述网络存储实体;生成元数据以关联所述网络存储实体、所述逻辑存储单元和所述物理存储单元,其中,所述元数据包括将所述多个逻辑存储单元相关联以形成逻辑循环缓冲区的循环链表以及所述逻辑存储单元和所述物理存储单元之间的映射;通过将至少一个逻辑存储单元从第一物理存储单元重新定位到第二物理存储单元来重新平衡所述多个物理存储单元;根据所述逻辑存储单元的重新定位更新所述元数据。
通过以下结合附图和权利要求的详细描述,这些以及其它特征将会被更清楚地理解。
附图说明
为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。
图1是存储网络实施例的示意图;
图2是解耦数据的逻辑和物理存储的存储架构的实施例的示意图;
图3是重新平衡数据存储的存储系统的实施例的示意图;
图4是用于重新平衡数据存储的NE的实施例的示意图;
图5是使用分布式存储元件的存储方案的实施例的示意图;
图6是不完整分布式循环缓冲区的配置的实施例的示意图;
图7是完整分布式循环缓冲区的配置的实施例的示意图;
图8A示出了初始即将到来的附加边界元件(upcoming append frontierelement,简称UAFE)目标选择场景的实施例;
图8B示出了UAFE目标重选场景的实施例;
图8C示出了UAFE目标选择完成场景的实施例;
图9是目标UAFE选择方法的实施例的流程图;
图10A示出了密封元件(sealed element,简称SE)选择场景的实施例;
图10B示出了目标物理位置选择和SE复制场景的实施例;
图10C示出了缓冲区清除场景的实施例;
图11是SE重新定位方法的实施例的流程图;
图12A示出了循环缓冲区的实施例;
图12B示出了将UAFE添加到图12A的循环缓冲区的实施例;
图13是缓冲区扩展方法的实施例的流程图;
图14A示出了循环缓冲区的另一实施例;
图14B示出了从图14A的循环缓冲区移除SE的实施例;
图15是缓冲区收缩方法的实施例的流程图;
图16是弹性数据存储生成方法的实施例的流程图;
图17是数据查询方法的实施例的流程图。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
本文公开了用于重新平衡在线存储系统的各种实施例。在线存储系统是指以连接状态主动提供数据存储服务并执行网络数据存储操作的存储系统。所公开的实施例通过采用分布式循环缓冲区元件将逻辑数据存储与数据存储系统中的物理数据存储分离。所公开的实施例提供了一组用于构建弹性数据存储和重新平衡数据存储的原始功能。所述原始功能包括缓冲区元件目标选择,缓冲区元件重新定位,缓冲区扩展和缓冲区收缩。原始功能是运行时或在线操作,可以在存储器在线并在使用中时在存储器上应用和/或执行。所公开的实施例通过构建被映射到属于持久存储器的物理存储单元的缓冲区元件或逻辑存储单元的循环链表来定义逻辑循环缓冲区形式的弹性数据存储实体。因此,逻辑循环缓冲区被称为持久循环缓冲区。持续循环缓冲区允许对兴趣度随时间推移而下降的数据进行耗散管理。作为感兴趣的弹性存储实体的持久循环缓冲区被命名为由系统客户端可访问的统一资源标识符(uniform resource identifier,简称URI)等全局名称标识的实体。元件也被命名并具有全局标识符。缓冲区元件,物理存储单元和弹性存储实体之间的关联由元数据服务器跟踪和维护。缓冲区元件是仅附加缓冲区元件,其中仅附加是指从先前写入位置继续写入数据。所公开的实施例定义了三种类型的缓冲区元件:SE、当前附加边界元件(currentappend frontier elements,简称CAFE)和UAFE。SE是一个已满的缓冲区元件,不接受额外的数据写入。例如,可将密封件附加到已满的缓冲区元件。CAFE是一个未满的缓冲区元件,目前正在接受数据写入。UAFE是用于将来数据写入的缓冲区元件。在逻辑循环缓冲区中,CAFE位于SE和UAFE之间。要构建逻辑循环缓冲区,在填充CAFE时选择目标UAFE。当CAFE已满时,CAFE转换到SE,UAFE转换到CAFE。重复逻辑循环缓冲区建立过程,直到逻辑循环缓冲区包括期望的存储容量。所公开的实施例通过仅允许将SE而不是CAFE重新定位到不同的物理存储位置来简化数据写入的跟踪。在一实施例中,可以例如基于物理存储单元的存储容量和/或存储性能,通过采用各种类型的优化方案来为UAFE或SE重新定位选择物理存储位置。所公开的实施例实现了并行缓冲区内重新平衡和缓冲区间重新平衡。缓冲区间重新平衡是指重新平衡位于不同的循环缓冲区的单个物理存储单元中的多个SE。缓冲区内重新平衡是指重新平衡位于同一循环缓冲区的单个物理存储单元中的多个SE。所公开的实施例可以应用于重新平衡和/或重新分配存储容量和/或存储性能。所公开的实施例可适用于任何类型的存储设备,操作环境和/或索引方案。图1是存储网络100的实施例的示意图。网络100包括数据源110,客户端120,存储设备130和元数据服务器140。所述存储设备130和所述元数据服务器140可对应于数据中心(data center,简称DC)和/或提供数据存储服务的服务提供商的组件。所述客户端120可以是数据存储服务的用户或DC的租户。例如,客户端120最初向数据存储服务提供商提供数据存储规范。数据存储规范可以包括存储容量要求,存储性能要求,存储类型和/或其它存储相关要求。随后,所述客户端120可以请求提供商将来自所述数据源110的数据存储到所述存储设备130。所述客户端120还可以查询存储在存储设备130的数据。
所述数据源110包括用于捕获数据并转发相关联的比特流到所述存储设备130的任何设备。例如,所述数据源110可以包括视频和/或音频监控系统,包括传感器的IoT设备,捕获关于系统状态/利用率的数据的DC,捕获关于系统状态/利用率的数据的移动网络等。相应地,比特流包括数据记录,其包括例如媒体(例如,视频和/或音频数据),传感器数据和/或任何其它类型的基本连续监测的时间序列数据等任何多样化的数据数组。数据记录还可以包括与数据相关联的其它信息,例如温度,电流,设备利用率或与数据相关的任何其它属性。在一些实施例中,数据可以包括有界寿命。例如,随着时间的推移,对用户来说,数据可能变得不那么重要或不那么感兴趣。
所述存储设备130可以是任何适合存储数据的设备。所述存储设备130可以包括多个物理存储单元,其可以包括存储类存储器(storage class memory,简称SCM),非易失性存储器(non-volatile memory,简称NVM),固态驱动器(solid state driver,简称SSD),硬盘驱动器(hard disk drive,简称HDD)和/或带状闪烁的磁录音(shingled magneticrecording,简称SMR)。所述存储设备130用于从所述数据源110接收比特流,并将接收到的比特流存储为例如数据段。在一些实施例中,所述存储设备130可额外执行数据压缩以优化存储使用率。
所述元数据服务器140是虚拟机(virtual machine,简称VM),服务器机器或用于管理所述存储设备130的任何设备。所述元数据服务器140管理数据到存储设备130的写入,数据从存储设备130的读取,以及存储设备130的重新平衡。重新平衡可以包括存储容量重新分配和存储负载和/或性能重新分配。所述元数据服务器140包括弹性存储引擎141,数据管理组件142,读取器143和写入器144。所述弹性存储引擎141用于确定数据可以存储在存储设备130的哪些位置上和存储设备130上数据的组织结构。在一实施例中,所述弹性存储引擎141将存储设备130上的数据的逻辑存储和物理存储解耦。例如,所述弹性存储引擎141定义逻辑存储单元并将逻辑存储器单元映射到存储设备130的物理存储单元。逻辑存储单元可以包括相同的大小和/或不同的大小。在一实施例中,所述弹性存储引擎141可以将物理存储单元逻辑划分成多个逻辑存储单元。所述弹性存储引擎141可以根据客户端120所需的存储量来进一步链接多个逻辑存储单元。例如,所述弹性存储引擎141将多个逻辑存储单元分配给客户端120,并通过采用循环链表技术将所述多个逻辑存储单元作为单个存储实体呈现给客户端120,如下面更全面的描述。应当注意,虽然所述弹性存储引擎141显示为所述元数据服务器140的内部组件,但弹性存储引擎141可以被配置为元数据服务器140的外部组件。例如,弹性存储引擎141可以对应于通信耦合到元数据服务器140的另一VM或设备。
所述数据管理组件142用于维护与由所述弹性存储引擎141定义的逻辑存储单元,物理存储单元和存储实体相关联的元数据。元数据可以包括物理存储单元的全局地址,逻辑存储单元和物理存储单元之间的映射,逻辑存储单元之间的链接和/或关系(例如,以循环链表的形式),逻辑存储单元与分配给客户端120的存储实体之间的映射,以及逻辑存储单元和/或物理存储单元的状态,如下面更全面的讨论。
所述读取器143用于从客户端120接收查询并且与数据管理组件142和存储设备130交互以响应从客户端120接收到的查询,如下面更全面的讨论。在一些实施例中,客户端120直接向元数据服务器140发送查询。在另一些实施例中,客户端120向存储设备130发送查询,并且存储设备130与读取器143和数据管理组件142交互以提供请求的数据。
所述写入器144用于从客户端120接收写请求,并与数据管理组件142和弹性存储引擎141交互以将数据写入存储设备130。在一些实施例中,客户端120直接向元数据服务器140发送写请求。在另一些实施例中,客户端120向存储设备130发送写请求,并且存储设备130与写入器144和数据管理组件142交互以将数据写入存储设备130。
当存储设备130在线并且在使用时,可以更新存储设备130的物理配置。例如,客户端120可以在为客户端120构建存储实体之后请求增加存储容量。或者,可以移除较旧或较低性能的物理存储单元,并且可以添加更新或更好性能的物理存储单元。因此,数据的动态重新平衡对于数据存储管理可能是重要的。重新平衡是指重新定位现有数据,选择用于重新定位现有数据或存储未来数据的目标物理存储单元,和/或调整(例如,扩展或缩小)特定客户端120所需的物理存储量的大小的过程。
图2是解耦数据的逻辑和物理存储的存储系统200架构的实施例的示意图。所述系统200包括可以对应于诸如存储设备130的存储设备的多个物理存储单元210。例如,所述物理存储单元210可以是存储盘,诸如SCM,NVM,SSD,HDD或SCM。所述系统200通过定义多个逻辑存储单元220并将逻辑存储单元220映射到物理存储单元210来解耦数据的逻辑和物理存储。每个逻辑存储单元220对应于缓冲区元件,并且可以指所述系统200中存储分配的最小单元。在一些实施例中,所述逻辑存储单元220是仅附加缓冲区,其中数据写入可以从先前写入位置继续。可以通过采用若干机制将逻辑存储单元220映射到物理存储单元210。例如,单个物理存储单元210可以被逻辑分割成多个逻辑存储单元220。或者,单个逻辑单元220可以被映射到一个物理存储单元210的一部分和另一个物理存储单元210的一部分。每个逻辑存储单元220可以包括相同的存储容量或不同的存储容量。当DC或数据存储服务器提供商采用系统200架构时,诸如客户端120的客户端被分配有分布在物理存储单元210上的一个或多个逻辑存储单元220。逻辑存储单元220可以逻辑链接在一起以形成循环缓冲区并且可以被表示为单个存储实体,如下面更全面的描述。
图3是重新平衡数据存储的存储系统300的实施例的示意图。所述系统300类似于存储设备130并且采用与系统200类似的存储架构。系统300最初包括多个第一物理存储单元311和映射到所述第一物理存储单元311的多个逻辑存储单元320。所述逻辑存储单元320类似于逻辑存储单元220。所述第一物理存储单元311类似于物理存储单元210。随后,类似于物理存储单元210和311的多个第二物理存储单元312被添加到系统300中。为了重新平衡数据存储,逻辑存储单元320的一部分325可以被重新定位(由箭头示出)到所述第二物理存储单元312,例如以改善数据读取和/或写入性能。当系统300在线时,数据存储重新平衡的挑战可能包括负载重新平衡,存储大小调整和容量调整。负载重新平衡是指用于优化读取和/或写入吞吐量和容量所使用的逻辑存储单元320的重新定位和/或分配。存储大小调整是指当诸如第二物理存储单元312的额外物理存储单元被添加到系统300中时,存储容量的扩展。容量调整是指调整分配给特定租户或客户端,例如,客户端120,的存储量。数据存储重新平衡的决策可以取决于几个因素,诸如数据和/或应用的类型以及正在使用的存储系统300的类型和/或目标函数和/或优化参数(例如,热量测量,容量测量和/或功率测量)。
图4是作为网络100等存储网络中的节点的NE 400的实施例的示意图。例如,所述NE 400可以用于充当例如存储设备130等的存储设备,例如元数据服务器140等的元数据服务器。如本文所述,NE 400可以用于在存储系统在线时实现和/或支持数据存储重新平衡。NE 400可以在单个节点中实现,或者NE 400的功能可以在网络中的多个节点中实现。本领域的技术人员应意识到,术语NE包括广泛意义上的设备,NE 400仅是其中一个示例。包括NE400是为了表述清楚,并不旨在将本发明的应用限制为特定的NE实施例或某一类NE实施例。本发明所述的至少部分特征/方法可以在网络装置或组件,例如,NE 400,中实现。例如,本发明中的特征/方法可以采用硬件、固件和/或在硬件上安装运行的软件实现。NE 400可以是任何通过网络处理,存储和/或转发数据帧的设备,例如,服务器,客户端,数据源等。如图4所示,NE 400可以包括收发器(Tx/Rx)410,其可以是发射器,接收器,或其组合。Tx/Rx410可以耦合到多个端口450(例如上行接口和/或下行接口),用于从其它节点发送和/或接收帧。处理器430可耦合至Tx/Rx 410,以处理帧和/或确定向哪些节点发送帧。处理器430可以包括一个或多个多核处理器和/或存储器设备432,其可以用作数据存储器,缓冲区等。处理器430可以被实现为通用处理器,或者可以是一个或多个专用集成电路(applicationspecific integrated circuit,简称ASIC)和/或数字信号处理器(digital signalprocessor,简称DSP)的一部分。处理器430可以包括数据存储重新平衡模块434,其可以执行方法900、1100、1300、1500、1600和/或1700,这取决于实施例。因此,包括数据存储重新平衡模块434和相关联的方法和系统提供了对存储网络的功能的改进。此外,数据存储重新平衡模块434将存储网络中的特定物品(例如,诸如存储设备130等的存储设备)变换到不同的状态(例如,负载和容量)。在一替代实施例中,数据存储重新平衡模块434可以被实现为存储在存储器432中的指令,其可以例如作为计算机程序产品由处理器430执行。在另一替代实施例中,数据存储重新平衡模块434可以在单独的NE上实现。
应当理解,通过将可执行指令编程和/或加载到NE 400,处理器430,数据存储重新平衡模块434,端口450,Tx/Rx410和/或存储器432中的至少一个会被改变,将NE 400部分转换成具有本发明所公开的新颖功能的特定机器或装置,例如多核转发架构。对于电气工程和软件工程领域至关重要的是,可以按照公知的设计规则将可以通过将可执行软件加载到计算机来实现的功能转换为硬件实现。在软件还是硬件中实现概念通常取决于对于待生产单元设计稳定性和数量的考虑,而并非考虑任何涉及从软件域到硬件域的转换问题。通常,经常变化的设计可以优先在软件中实现,这是因为重编硬件实现要比重编软件设计更加昂贵。通常,稳定性好并大批量生产的设计可以优先在硬件中实现,例如,在ASIC中,因为大批量生产运行使得硬件实现比软件实现更廉价。通常,一项设计可以以软件的形式进行开发和测试,之后根据公认的设计规则转变为专用集成电路中等效的硬件实现方式,所述硬件实现方式硬连线至所述软件的指令。按照相同的方式,由新型ASIC控制的机器即为一种特定机器或装置,同样地,已被编程和/或加载可执行指令的计算机可被视为特定的机器或装置。
图5是使用分布式存储元件的存储方案500的实施例的示意图。所述存储方案500可以由例如网络100、系统200和/或300等的存储系统采用。方案500包括SE 510(如实心框所示),CAFE 520(如虚线框所示)和UAFE 530(如虚线框所示)。所述SE 510,CAFE 520和UAFE 530是仅附加存储元件或缓冲区元件。SE 510,CAFE 520和UAFE 530可以对应于逻辑存储单元220和320,并且可以分配并分布在例如物理存储单元210、311和312的多个物理存储单元上。SE 510是一个已满的缓冲区元件。例如,可以将密封件附加到缓冲区元件以指示缓冲区元件已满。因此,SE 510可能不接受额外的数据写入。CAFE 520是当前接受数据写入的缓冲区元件,被称为开放元件。例如,可以使用写指针来跟踪最后数据写入位置,使得可以在最后数据写入位置将新数据附加到缓冲区元件。UAFE 530是用于将来数据写入的缓冲区元件。例如,UAFE 530是在CAFE 520已满之后被选择(例如,基于一些对象功能)用于接受未来数据写入和转换到SE的缓冲区元件,例如SE 510。SE 510、CAFE 520和UAFE 530分布在例如物理存储单元210、311和312等的多个物理存储单元上。
在方案500中,弹性存储实体从缓冲区元件的有序序列构建。例如,CAFE 520位于SE 510和UAFE 530之间。有序序列由互连SE 510,CAFE 520和UAFE 530的多个链路540跟踪和/或维护。然而,SE 510,CAFE 520和UAFE 530不被链路540物理链接或嵌入代表链路540的任何指针。相反,有序序列是SE 510,CAFE 520和UAFE 530之间的逻辑关系并且由例如元数据服务器140等的元数据服务器维护,例如以元数据的形式。为了构建弹性存储实体,在CAFE 520被填充时,为UAFE 530选择目标物理位置。当CAFE 520已满时,CAFE 520转换到SE510,UAFE 530转换到CAFE 520,并且可以为下一个UAFE 530选择另一个目标物理位置。重复所述构建过程,直到弹性存储实体包括期望的存储容量。
图6是不完整分布式循环缓冲区600的配置的实施例的示意图。所述循环缓冲区600包括类似于SE 510的多个SE 610,类似于CAFE 520的CAFE 620和类似于UAFE 530的UAFE 630。SE 610,CAFE 620和UAFE 630通过类似于链路540的多个链路640互连。示出的配置对应于例如网络100等的存储网络为客户端,例如客户端120,构建存储实体的场景。所述缓冲区600被称为不完整的循环缓冲区,因为缓冲区600可以通过添加UAFE 630继续扩展,直到缓冲区600包括期望的存储容量。
图7是完整的分布式循环缓冲区700的配置的实施例的示意图。所述缓冲区700包括通过使用类似于链路540和640的链路740互连的类似于SE 510和610的多个SE 710和类似于CAFE 520和620的CAFE 620。示出的配置对应于例如网络100等的存储网络已经完成为客户端,例如客户端120,构建存储实体的场景。存储实体的完成是指网络分配满足客户端的要求或数据规范的数据存储量。因此,所述缓冲区700是完整的循环缓冲区,其中链路740循环地链接SE 710和CAFE 720。应当注意,一旦CAFE 720已写满,使用逻辑循环缓冲区使得最早的数据能被覆盖。例如,一旦CAFE 720已满,则紧随在CAFE 720之后,SE710可以首先转换到UAFE,然后到CAFE 720,并且可以用新的数据覆盖缓冲区700中最早的数据。因此,缓冲区700适合于存储有界寿命数据,其包括随着时间推移用户兴趣减少的数据。
所公开的实施例定义了用于提供弹性数据存储和重新平衡数据存储的一组规则。首先,可以通过将存储在任何SE,例如SE 510、610和710,中的数据从一个物理位置复制到另一物理位置来重新分配或重新定位所述SE。此外,可以同时重新分配多个SE。SE的重新分配会重新平衡数据存储和读取负载。SE的重新分配会动态吸收和/或释放资源。其次,CAFE,例如CAFE 520、620和720,可能在任何时候都不能重新分配或重新定位,以避免事务登录和/或其它复杂的故障恢复机制。第三,选择UAFE,例如UAFE 530和630,来提供写入负载重新平衡方面的最佳分配。类似地,UAFE的选择会动态地吸收和/或释放资源。应当注意,重新定位CAFE的复杂性可能超过重新定位的收益或益处,因此所公开的实施例不会重新定位CAFE,以简化重新平衡机制。
如上所述,例如元数据服务器140等的元数据服务器用于在例如网络100等的存储网络中管理存储设备,例如,存储设备130。元数据服务器充当用于缓冲区元件(例如,逻辑存储单元)重新分配和重新平衡的命令和控制中心。在一实施例中,元数据服务器维护例如逻辑存储单元220和320等的逻辑存储单元以及存储设备中的例如物理存储单元210、311和312等的物理存储单元之间的映射。例如,每个缓冲区元件或每个逻辑存储单元,例如,SE510、610、710和810,CAFE 520、620、720和820以及UAFE 530、630和830,由可能在命名循环缓冲区中全局唯一的缓冲区元件标识符(identifier,简称ID)标识。由缓冲区元件或逻辑存储单元映射的物理存储单元由全局存储ID标识,其也可以以URI和地址的形式表示。下表示出了缓冲区元件或逻辑存储单元与物理存储单元之间的映射示例:
表1:缓冲区元件与物理存储单元之间的映射
缓冲区元件ID 全局存储ID
循环缓冲区的URI 有序的缓冲区元件ID组
序列号 地址
在另一实施例中,元数据服务器维护和跟踪物理存储单元的状态和度量。例如,每个物理存储单元可以由可由URI描述的存储ID来标识。状态的一些示例可以包括已加载状态,未加载状态,已参与重新平衡状态,准备好接受负载状态,上电状态和下电状态。已加载状态表示物理存储单元包括存储的数据。未加载状态表示物理存储单元为空(例如,没有存储数据)。已参与重新平衡状态表示物理存储单元处在将数据复制到所述物理存储单元和/或从所述物理存储单元中复制数据的过程中。准备好接受负载状态表示物理存储单元是由元数据服务器管理的存储系统的一部分,并且准备好接收和存储数据。上电状态表示物理存储单元已上电或在线。下电状态表示物理存储单元已下电或离线。应当注意,物理存储单元可以根据一些省电方案上电或下电。例如,在某些容量条件下,可通过重新定位数据来减少可以上电的物理存储单元的数量。在一实施例中,状态可以以标志的形式表示。逻辑或操作可以应用标志以指示多个状态。例如,物理存储单元可以被加载并且参与重新平衡。但是,一些标志值可能不能指示多个状态。例如,物理存储单元不能被下电并参与重新平衡。因此,检查标志值是否一致是很重要的。例如,元数据服务器可以执行反熵扫描,以确保标志值在长时间跨度上与物理状态保持一致,其中反熵扫描实现了漂移和/或一致性修复。下表示出了物理存储单元的状态标志的一些示例:
表2:物理存储单元的状态标志示例
Figure BDA0001567876660000081
在又一实施例中,元数据服务器维护和跟踪物理存储单元的度量,例如,热量分布图和/或利用率分布图。例如,可以根据物理存储单元的输入/输出(input/output,简称IO)热量或温度来测量热量分布图。IO热量是指在物理存储单元处发生的读取和/或写入活动(例如,频率和/或传送量)。利用率分布图用于测量已使用和/或可用的存储容量。
在又一实施例中,元数据服务器维护和跟踪表示存储实体中的逻辑存储单元的互连的循环链表。如上所述,每个存储实体由例如链路540、640和740等的链路循环链接的缓冲区元件或逻辑存储单元的列表来表示。
所公开的实施例定义了用于提供弹性数据存储和重新平衡数据存储的一组原始操作。原始操作包括UAFE目标选择,SE重新定位,缓冲区扩展和缓冲区收缩,如下面更全面的描述。原始操作能够在微观层面上实现重新平衡,并且可以并行组合和/或执行以提供宏观重新平衡。图8A至8C示出了UAFE目标选择方案800的实施例。方案800由例如网络100等的存储网络中的例如元数据服务器140等的元数据服务器实现。方案800在为客户端,例如,客户端120,构建存储实体时实现。例如,存储实体可以是以循环缓冲区,例如,循环缓冲区600和700,的形式存在。如图所示,方案800被应用于类似于存储设备130的包括类似于物理存储单元210、311和312的多个物理存储单元811、812、813、814、815、816和817的存储设备。方案800被划分为初始选择阶段,重新选择阶段和完成阶段。初始选择阶段在类似于CAFE520、620和720的CAFE 820被初始化并准备好接受数据之后立即开始。如图所示,CAFE 820被映射到物理存储单元811。
图8A示出了初始UAFE目标重选场景的实施例。例如,通过优化热量度量来进行选择。如图所示,物理存储单元811至817各自包括在热量分布图851中所示的热量度量。基于热量分布图851,为类似于UAFE 530和630的UAFE 830选择包括最小热量度量的物理存储单元812。在为UAFE 830选择物理存储单元812之后,元数据服务器可以更新与UAFE 830和目标物理存储单元812相关联的元数据。与UAFE 830相关联的元数据可以包括类似于表1所述的缓冲区元件ID的数据和类似于链路540、640和740的将CAFE 820链接到UAFE 830的缓冲链路841。与物理存储单元812相关联的元数据可以包括如表1所述的存储地址和基于与UAFE 830相关联的一些预期或估计的IO活动的热量分布图更新。
图8B示出了UAFE目标重选场景的实施例。例如,当CAFE 820达到某个缓冲阈值时,应用重新选择。如图所示,CAFE 820是填充约30%(%)(以局部图案填充的方式示出)。执行重新选择以精细化和/或优化初始选择。例如,由于IO活动的变化,物理存储单元811至817的热量度量可能会因初始选择而改变。如图所示,物理存储单元811至817包括更新的热量分布图852。通过比较热量分布图851和更新的热量分布图852,先前选择的物理存储单元812的热量度量增加了并且不再包括最小热量度量。相反,物理存储单元813包括最小热量度量。因此,为UAFE 830选择物理存储单元813。类似于初始选择,元数据服务器根据重新选择来更新元数据。例如,链路841被更新为连接映射到物理存储单元813的UAFE 830的链路842。应当注意,当CAFE 820达到更高的缓冲阈值(例如,填充约70%)时重复所述重新选择过程。在一些实施例中,迭代次数和/或缓冲阈值可以通过使用梯度下降技术和最小化整个系统不平衡的目标函数来确定,例如,磁盘热量标准偏差。
图8C示出了UAFE目标选择完成场景的实施例。当CAFE 820完全填充(例如,100%填充)时,UAFE目标选择完成。当CAFE 820完全填充时,CAFE 820被密封。在CAFE 820被密封之后,CAFE 820转换到类似于SE 510、610和710的SE 810。当CAFE 820转换到SE 810时,UAFE 830的物理位置是固定的,并且UAFE 830转换到与CAFE 820类似的CAFE 821。下一轮的UAFE目标选择可以通过重复所述方案800开始。应当注意,虽然所述方案800采用基于热量度量的目标函数,但也可以采用其它合适的目标函数,正如本领域普通技术人员确定,以实现相同的功能。
图9是目标UAFE选择方法900的实施例的流程图。所述方法900由存储网络,例如,网络100,中的元数据服务器,例如,元数据服务器140,弹性存储引擎,例如,弹性存储组件141,或NE,例如,NE 400来实现。方法900在为客户端,例如,客户端120,构建存储实体时实现。方法900采用与方案800中描述的类似的机制。在步骤910中,CAFE,例如,CAFE 520、620、720和820被初始化。例如,与存储实体和/或循环缓冲区相关联的数据写入指针可以用于指向CAFE的开头。一旦CAFE被初始化后,CAFE可能会开始接收数据并附加数据。在步骤920中,为例如UAFE 530和630等的UAFE选择初始目标物理存储单元。例如,网络包括多个物理存储单元,并且目标物理存储单元是通过优化目标函数或多个物理存储单元之间的存储度量来选择。存储度量可以包括存储利用率和存储性能,例如,整体写入吞吐量,写入延迟的某个百分位数和/或功率节省的某个测量指标。
在步骤930中,确定CAFE是否达到某个缓冲阈值(例如30%或70%填充)。如果存储在CAFE中的数据量尚未达到缓冲阈值,则重复步骤930。如果存储在CAFE中的数据量达到缓冲阈值,接下来在步骤940中,例如通过重复对目标函数的优化来为UAFE重新选择目标物理存储单元。由于物理存储单元的存储利用率和/或性能可以在步骤920的最后选择之后改变,所以执行重新选择。应当注意,步骤930和940可以在不同的缓冲阈值下多次重复以进一步优化选择。在一些实施例中,可以采用梯度下降技术或任何其它优化技术来确定优化的迭代次数和对应的缓冲阈值。
在步骤950中,确定CAFE是否已满。如果CAFE未满,则重复步骤950。如果CAFE已满,接下来在步骤960中,UAFE被锁定到在步骤940中选择的目标物理存储单元。当CAFE已满时,可以密封CAFE。CAFE被密封后,CAFE转换到SE,例如,SE 510、610和710,并且可能不会接收任何其它数据。当CAFE转换到SE时,UAFE转换到CAFE,并且可以重复方法900以选择下一个UAFE目标位置。应当注意,可以根据初始选择和UAFE目标位置的重新选择来更新与存储实体相关联的元数据。
图10A至10C示出了SE重新定位方案1000的实施例。方案1000由例如网络100等的存储网络中的例如元数据服务器140等的元数据服务器实现。方案1000在重新平衡数据存储时实现。可以执行重新平衡以在例如存储设备130和系统300等的存储系统中重新平衡容量,在存储系统中重新平衡读取和/或写入吞吐量。如图所示,方案1000被应用于类似于存储设备130的包括类似于物理存储单元210、311和312和811至817的多个物理存储单元1011、1012、1013、1014、1015、1016和1017的存储设备。例如,基于物理存储单元1011至1017的容量分布图1050来确定重新定位。容量分布图1050包括可用于物理存储单元1011至1017中每一个的容量。方案1000被划分为SE选择阶段,目标物理位置选择,SE复制阶段和缓冲区清除阶段。
图10A示出了SE选择场景的实施例。例如,映射到物理存储单元1011的SE 1010被选择以重新定位到另一个物理位置。在一些实施例中,可以同时选择多个SE用于重新定位。
图10B示出了目标物理位置选择和SE复制场景的实施例。如图所示,基于容量分布图1050,物理存储单元1015被选择为SE 1010的目标物理位置,其中,物理存储单元1015包括比SE1010目前所处的物理存储单元1011更大的可用容量。在选择物理存储单元1011之后,数据被从物理存储单元1011复制到物理存储单元1015,如箭头1060所示。
图10C示出了缓冲区清除场景的实施例。在将所有数据从物理存储单元1011复制到物理存储单元1015之后,缓冲区清除阶段发生。在完成数据复制后,先前分配给SE 1010的物理存储单元1011中的存储(如1070所示)可以被释放或返回到物理存储单元1011。在一实施例中,元数据服务器可以在单个事务中执行缓冲区清除。例如,元数据服务器更新与SE1010和物理存储单元1011和1015相关联的元数据,并将SE 1010先前使用的存储返回到空闲列表。
图11是SE重新定位方法1100的实施例的流程图。方法1100由例如网络100等的存储网络中的元数据服务器,例如,元数据服务器140,弹性存储引擎,例如,弹性存储引擎141,或NE,例如,NE 400,实现。例如,存储网络为客户端,例如,客户端120,提供存储实体,其中,存储实体包括由分布在多个物理存储单元,例如,物理存储单元210、311和312,上的逻辑存储单元,例如,逻辑存储单元220和320,的循环链表形成的逻辑循环缓冲区。所述逻辑循环缓冲区类似于循环缓冲区600或700,并包括一个或多个SE,例如SE 510、610、710和810。方法1100在重新平衡存储容量和/或存储性能时实现。方法1100采用与方案1000中描述的类似的机制。在步骤1110中,选择SE,例如,SE 510、610、710和810,用于重新定位。例如,由于将额外的物理存储单元添加到网络,重新定位可以被发起。或者,当计划排除由SE从服务映射的当前物理存储单元以进行功率节省或其它维护时,重新定位可以被发起。还可以发起重新定位以重新平衡负载分配。在步骤1120中,选择目标物理存储单元来重新定位SE。例如,可以通过优化目标函数来选择目标物理存储单元。目标函数可以包括与物理存储单元相关联的存储容量度量和/或存储性能度量。在步骤1130中,在选择目标物理存储单元之后,将存储在SE中的数据从当前物理存储单元复制到目标物理存储单元。在步骤1140中,在将数据复制到目标物理存储单元之后,释放当前物理存储单元中的与SE相对应的物理存储。应当注意,可以根据SE重新定位来更新与存储实体相关联的元数据。在一实施例中,可以使用空闲列表来跟踪可用的物理存储。
图12A至12B示出了缓冲区扩展方案1200的实施例。方案1200由例如网络100等的存储网络中的元数据服务器,例如,元数据服务器140,实现。方案1200在为例如客户端120的客户端构建完整的循环缓冲区,例如,循环缓冲区700,时实现,并且客户端请求更多的存储容量。
图12A示出了循环缓冲区的实施例,其包括类似于SE 510、610、710、810和1010的多个SE 1210和类似于CAFE 520、620、720和820的CAFE 1220。SE 1210和CAFE 1220通过与链路540、640、740、841和842类似的多个链路1240互连,其中,链路1240是由元数据服务器存储和维护的元数据。
图12B示出了将UAFE 1230添加到图12A的循环缓冲区的实施例。如图所示,先前将CAFE1220连接到SE 1210的链路1240被移除并且添加额外的链路1240(如点虚线所示)以包括UAFE 1230。可以重复添加UAFE 1230以扩展循环缓冲区,直到循环缓冲区包括所需的容量。应当注意,方案1200可以在选择UAFE 1230的目标物理位置时采用与方案800类似的机制。此外,当将UAFE 1230添加到循环缓冲区时,元数据服务器可以更新与循环缓冲区相关联的元数据。
图13是缓冲区扩展方法1300的实施例的流程图。方法1300由例如网络100等的存储网络中的元数据服务器,例如,元数据服务器140,弹性存储引擎,例如,弹性存储引擎141,或NE,例如,NE 400,实现。例如,存储网络为客户端,例如,客户端120,提供存储实体,其中,存储实体包括由分布在多个物理存储单元,例如,物理存储单元210、311和312,上的逻辑存储单元,例如,逻辑存储单元220和320,的循环链表形成的逻辑循环缓冲区。不完整循环缓冲区(例如,循环缓冲区600)的存储容量可以通过更新元数据,例如,目标存储容量和不断地向不完整的循环缓冲区添加额外的逻辑存储单元,来扩展。在构建完整的循环缓冲区(例如,循环缓冲区700)之后实现方法1300。方法1300采用与方案1200中描述的类似的机制。在步骤1310中,例如从客户端接收增加存储实体的存储容量的请求。在步骤1320中,选择用于额外的逻辑存储单元的目标物理存储单元。在步骤1330中,将额外的逻辑存储单元插入到存储实体中。额外的逻辑存储单元可以在由与存储实体相关联的数据写入指针引用的逻辑存储单元(例如,CAFE 1220)旁边的位置处插入到逻辑循环缓冲区中。在步骤1340中,确定存储实体是否包括满足所述请求的存储容量。如果存储容量不满足所述请求,则重复步骤1320至1340。否则,方法1300完成。应当注意,可以根据额外的存储逻辑单元的插入来更新与存储实体相关联的元数据。例如,可以更新链接逻辑存储单元的循环链表以包括额外的存储单元。
图14A和14B示出了缓冲区收缩方案1400的实施例。方案1400由例如网络100等的存储网络中的元数据服务器,例如,元数据服务器140,实现。方案1400在为例如客户端120的客户端构建完整的循环缓冲区,例如,循环缓冲区700,时实现,并且客户端请求减少存储容量。
图14A示出了循环缓冲区的另一实施例,其包括类似于SE 510、610、710、810和1010的多个SE 1410和类似于CAFE 520、620、720和820的CAFE 1420。SE 1410和CAFE 1420通过与链路540、640、740、841和842类似的多个链路1440互连,其中,链路1440是由元数据服务器存储和维护的元数据。
图14B示出了从图14B的循环缓冲区移除SE 1410的实施例。当从循环缓冲区移除SE 1410时,与所移除的SE 1410对应的存储被释放。例如,元数据服务器可以采用空闲列表来跟踪未分配和/或释放的存储。元数据服务器可以更新与循环缓冲区相关联的元数据。例如,如点虚线所示,在移除之后,元数据服务器可以更新用于CAFE 1420指向对应的SE 1410的下一个缓冲指针。应该注意,被移除的SE 1410紧跟在CAFE 1420之后,其中,存储在所移除的SE 1410中的数据对应于循环缓冲区中最早的数据。此外,当循环缓冲区是不完整循环缓冲区,例如,循环缓冲区600,时,UAFE,例如,UAFE 530和630,可以从循环缓冲区中移除。
图15是缓冲区收缩方法1500的实施例的流程图。方法1500由例如网络100等的存储网络中的元数据服务器,例如,元数据服务器140,弹性存储引擎,例如,弹性存储引擎141,或NE,例如,NE 400,实现。例如,存储网络为客户端,例如,客户端120,提供存储实体,其中,存储实体包括由分布在多个物理存储单元,例如,物理存储单元210、311和312,上的逻辑存储单元,例如,逻辑存储单元220和320,的循环链表形成的逻辑循环缓冲区。方法1500采用与方案1400中描述的类似的机制。在步骤1510中,例如从客户端接收到降低存储实体的存储容量的请求。在步骤1520中,可以例如通过更新链接逻辑存储单元的循环链表,从存储实体移除一个或多个逻辑存储单元。在步骤1530中,例如通过更新跟踪可用物理存储的空闲列表来释放对应于移除的逻辑存储单元的物理存储。
图16是弹性数据存储生成方法1600的实施例的流程图。方法1600由例如网络100等的存储网络中的元数据服务器,例如,元数据服务器140,弹性存储引擎,例如,弹性存储引擎141,或NE,例如,NE 400,实现。方法1600在例如客户端,例如客户端120,请求网络存储实体时开始。在步骤1610中,网络存储实体是通过将多个逻辑存储单元,例如,逻辑存储单元220和320,映射到包括多个物理存储单元,例如,物理存储单元210、311和312,的存储系统,例如,存储设备130和系统300,来构建。网络存储实体还通过依次排列逻辑存储单元来形成逻辑循环缓冲区,例如,循环缓冲区600和700,来构建。网络存储实体还通过指定用于写入数据的当前逻辑存储单元,例如CAFE 520、620和720,以及用于在当前逻辑存储单元已写满之后写入数据的即将到来的逻辑存储单元,例如UAFE 530和630,来构建。在一实施例中,由于从客户端接收数据,网络存储实体可以被构建。例如,可以通过初始化当前逻辑存储单元来构建网络存储实体,使得当前逻辑存储单元准备好接受数据并且通过采用如方案800和方法900描述的类似的机制来为即将到来的逻辑存储单元选择目标物理存储位置。在步骤1620中,当存储系统根据第一存储度量,通过将至少一个逻辑存储单元重新定位到不同的物理存储单元来主动执行存储操作(例如,在线和在使用中),存储系统获得重新平衡。第一存储度量可以包括与物理存储单元相关联的存储利用率,读取和/或写入吞吐量,和/或读取和/或写入延迟。
图17是数据查询方法1700的实施例的流程图。方法1700由例如网络100等的存储网络中的元数据服务器,例如,元数据服务器140,或NE,例如,NE 400,实现。当例如位于元数据服务器上的读取器,例如,读取器143,接收到对应于网络存储实体或逻辑循环缓冲区,例如,循环缓冲区700,的数据的查询消息时,方法1700从步骤1710开始。在步骤1720中,确定所请求的数据是否位于逻辑循环缓冲区的SE处,例如,SE 510、610、710、1010、1210和1410,或者在CAFE处,例如,CAFE 520、620、720、820、1220和1420。如果所请求的数据不在SE或CAFE处,则接下来在步骤1750中,返回故障状态。如果所请求的数据位于SE或CAFE处,则接下来在步骤1730中,例如根据在网络存储实体和/或逻辑循环缓冲区的构建期间生成的物理到逻辑的映射来确定所定位到的SE或CAFE的物理存储位置。在步骤1740中,返回物理存储位置。应该注意的是,查询可以访问所有SE和所有CAFE。然而,被释放返回到空闲列表的SE可能不会被查询,直到它转换到CAFE或SE。
如上所述,原始操作可以并行执行,并且可以用于构建通用的重新平衡机制。这样的构建可以增量地驱动存储系统以达到更好平衡的负载分布。通过增量地重新平衡存储系统,可以避免滞后效应。例如,滞后效应可能导致目标选择在两个物理存储单元之间来回反弹。应该注意,SE和UAFE的重新分配和重新平衡的速度是不同的。例如,重新平衡SE可能比重新平衡UAFE快。
虽然本发明提供了多个实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文中所给出的细节。例如,各种元件或组件可以在另一系统中组合或整合,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离此处公开的精神和范围。

Claims (13)

1.一种由网络中的设备实现的方法,其特征在于,包括:
通过以下方式构建第一网络存储实体:
根据与多个物理存储单元相关联的第一存储度量将多个逻辑存储单元映射到物理存储系统中的所述多个物理存储单元;
依次排列所述多个逻辑存储单元以形成逻辑循环缓冲区;
指定用于写入数据的当前逻辑存储单元和用于在所述当前逻辑存储单元已写满之后写入数据的即将到来的逻辑存储单元;
当所述物理存储系统通过根据与所述多个物理存储单元相关联的第二存储度量将至少一个逻辑存储单元重新定位到不同的物理存储单元来主动地进行网络存储操作时,重新平衡所述物理存储系统;
通过所述网络接收数据;
通过将接收到的数据附加到位于所述逻辑循环缓冲区中的已写满的密封逻辑存储单元和所述即将到来的逻辑存储单元之间的所述当前逻辑存储单元来将所述接收到的数据写入所述逻辑循环缓冲区;
所述构建第一网络存储实体还包括:
初始化所述当前逻辑存储单元,使得所述当前逻辑存储单元准备好进行数据附加;
在初始化所述当前逻辑存储单元之后,通过优化与所述多个物理存储单元之间的所述第一存储度量相关联的目标函数来选择所述物理存储单元中的第一物理存储单元作为所述即将到来的逻辑存储单元的存储位置。
2.根据权利要求1所述的方法,其特征在于,重新定位的逻辑存储单元是密封的逻辑存储单元。
3.根据权利要求1所述的方法,其特征在于,所述构建第一网络存储实体还包括:当写入所述当前逻辑存储单元的接收到的数据的量达到一定的缓冲阈值时,通过重复所述目标函数的优化来重新选择所述物理存储单元中的第二物理存储单元作为所述即将到来的逻辑存储单元的存储位置。
4.根据权利要求1所述的方法,其特征在于,所述逻辑存储单元从所述物理存储单元中的第一物理存储单元重新定位到所述物理存储单元中的第二物理存储单元,并且重新定位逻辑存储单元包括:
通过优化与所述多个物理存储单元之间的所述第二存储度量相关联的目标函数来选择所述第二物理存储单元;
将与所述逻辑存储单元相对应的数据从所述第一物理存储单元复制到所述第二物理存储单元;
在将所述数据复制到所述第二物理存储单元之后,释放对应于所述逻辑存储单元的所述第一物理存储单元中的存储。
5.根据权利要求1所述的方法,其特征在于,当所述物理存储系统可操作,且在所述物理存储系统中添加额外的物理存储单元时,重新定位所述逻辑存储单元。
6.根据权利要求1所述的方法,其特征在于,所述逻辑存储单元被重新定位以排除从与所述逻辑循环缓冲区结合的另外的服务映射到所述逻辑存储单元的物理存储单元。
7.根据权利要求1所述的方法,其特征在于,重新定位所述逻辑存储单元与构建所述第一网络存储实体同时进行。
8.根据权利要求1所述的方法,其特征在于,所述重新平衡所述物理存储系统还包括同时重新定位所述多个逻辑存储单元。
9.根据权利要求1所述的方法,其特征在于,还包括:通过将多个第二逻辑存储单元映射到所述物理存储系统来构建第二网络存储实体,其中,所述重新平衡所述物理存储系统还包括:同时重新定位所述第二网络存储实体中的逻辑存储单元和所述第一网络存储实体中的逻辑存储单元。
10.根据权利要求1所述的方法,其特征在于,所述第一存储度量和所述第二存储度量与所述多个物理存储单元的存储利用率,所述多个物理存储单元的读取吞吐量,所述多个物理存储单元的写入吞吐量,所述多个物理存储单元的读取延迟,所述多个物理存储单元的写入延迟,或其组合相关联。
11.一种网络中的设备,其特征在于,包括:
接收器,用于:
耦合到存储网络中的多个物理存储单元;
接收包括创建网络存储实体的请求的存储请求消息;
处理器,与所述接收器耦合,用于:
根据所述存储请求消息,将分布在所述物理存储单元上的多个逻辑存储单元分配给所述网络存储实体;
生成元数据以关联所述网络存储实体,所述逻辑存储单元和所述物理存储单元,其中,所述元数据包括将所述多个逻辑存储单元相关联以形成逻辑循环缓冲区的循环链表以及所述逻辑存储单元和所述物理存储单元之间的映射;
通过将至少一个逻辑存储单元从第一物理存储单元重新定位到第二物理存储单元来重新平衡所述多个物理存储单元;
根据所述逻辑存储单元的重新定位更新所述元数据;
通过所述网络接收数据;
通过将接收到的数据附加到位于所述逻辑循环缓冲区中的已写满的密封逻辑存储单元和即将到来的逻辑存储单元之间的当前逻辑存储单元来将所述接收到的数据写入所述逻辑循环缓冲区;
所述处理器还用于:
初始化所述当前逻辑存储单元,使得所述当前逻辑存储单元准备好进行数据附加;
在初始化所述当前逻辑存储单元之后,通过优化与所述多个物理存储单元之间的第一存储度量相关联的目标函数来选择所述物理存储单元中的第一物理存储单元作为所述即将到来的逻辑存储单元的存储位置。
12.根据权利要求11所述的设备,其特征在于,所述元数据还包括与所述物理存储单元中的第一物理存储单元相关联的存储度量,标识所述第一物理存储单元的第一统一资源标识符(uniform resource identifier,简称URI),所述第一物理存储单元的物理存储地址,与第一物理存储单元相关联的状态,标识映射到所述第一物理存储单元的所述逻辑存储单元中的第一逻辑存储单元的第二URI,将所述逻辑存储单元与所述逻辑循环缓冲区相关联的序列号,或其组合。
13.根据权利要求11所述的设备,其特征在于,所述接收器还用于接收数据的查询消息,并且所述处理器还用于:
确定所述数据位于所述逻辑循环缓冲区中的逻辑存储单元中;
确定所定位到的逻辑存储单元的物理存储位置;
其中,所述设备还包括发射器,与所述处理器耦合,用于发送所述物理存储位置以响应于所述查询消息。
CN201680045634.6A 2015-08-05 2016-07-26 弹性命名分布式循环缓冲区的重新平衡和弹性存储方案 Active CN107924334B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/818,664 2015-08-05
US14/818,664 US9942324B2 (en) 2015-08-05 2015-08-05 Rebalancing and elastic storage scheme with elastic named distributed circular buffers
PCT/CN2016/091773 WO2017020757A1 (en) 2015-08-05 2016-07-26 Rebalancing and elastic storage scheme with elastic named distributed circular buffers

Publications (2)

Publication Number Publication Date
CN107924334A CN107924334A (zh) 2018-04-17
CN107924334B true CN107924334B (zh) 2021-05-04

Family

ID=57942448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680045634.6A Active CN107924334B (zh) 2015-08-05 2016-07-26 弹性命名分布式循环缓冲区的重新平衡和弹性存储方案

Country Status (3)

Country Link
US (1) US9942324B2 (zh)
CN (1) CN107924334B (zh)
WO (1) WO2017020757A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619353B2 (en) * 2010-10-06 2017-04-11 International Business Machines Corporation Redundant array of independent disk (RAID) storage recovery
US10248316B1 (en) * 2015-09-30 2019-04-02 EMC IP Holding Company LLC Method to pass application knowledge to a storage array and optimize block level operations
US11573904B2 (en) * 2018-10-12 2023-02-07 Vmware, Inc. Transparent self-replicating page tables in computing systems
CN109754090A (zh) * 2018-12-27 2019-05-14 第四范式(北京)技术有限公司 支持执行多机器学习模型预测服务的分布式系统及方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4758944A (en) * 1984-08-24 1988-07-19 Texas Instruments Incorporated Method for managing virtual memory to separate active and stable memory blocks
DE69525531T2 (de) * 1995-09-04 2002-07-04 Hewlett Packard Co Dataverarbeitungssystem mit ringförmiger Warteschlange in einem Seitenspeicher
US6742078B1 (en) * 1999-10-05 2004-05-25 Feiya Technology Corp. Management, data link structure and calculating method for flash memory
EP1098249A1 (en) * 1999-11-05 2001-05-09 Emc Corporation Segmenting cache to provide varying service levels
US20020049815A1 (en) * 2000-04-14 2002-04-25 Kayshav Dattatri System for monitoring and managing information and information transfers in a computer network
US7130927B2 (en) * 2001-07-05 2006-10-31 International Business Machines Corporation Method of bandwidth management between the stations of a local area network
JP3900467B2 (ja) * 2001-11-05 2007-04-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 外部記憶装置、外部記憶装置制御方法、プログラム、及び記録媒体
JP4612269B2 (ja) * 2002-08-13 2011-01-12 日本電気株式会社 仮想ボリューム管理方式
KR101122511B1 (ko) * 2002-10-28 2012-03-15 쌘디스크 코포레이션 비휘발성 저장 시스템들에서 자동 웨어 레벨링
US7478154B2 (en) * 2003-06-26 2009-01-13 Hewlett-Packard Development Company, L.P. Storage system with link selection control
US7325118B2 (en) * 2003-09-30 2008-01-29 Samsung Electronics, Co., Ltd. Method and apparatus for executing dynamic memory management with object-oriented program
US7127549B2 (en) * 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
US7843906B1 (en) * 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for fabric-backplane enterprise servers
JP4357473B2 (ja) * 2005-11-04 2009-11-04 株式会社ソニー・コンピュータエンタテインメント データ処理システムおよびプログラム
US7594087B2 (en) * 2006-01-19 2009-09-22 Sigmatel, Inc. System and method for writing data to and erasing data from non-volatile memory
CN101558392A (zh) * 2006-12-11 2009-10-14 马维尔国际贸易有限公司 混合非易失性固态存储器系统
FI20080534A0 (fi) * 2008-09-22 2008-09-22 Envault Corp Oy Turvallinen ja valikoidusti kiistettävissä oleva tiedostovarasto
US8370645B2 (en) * 2009-03-03 2013-02-05 Micron Technology, Inc. Protection of security parameters in storage devices
US8099546B2 (en) * 2009-06-09 2012-01-17 Red Hat, Inc. Mechanism for a lockless ring buffer in overwrite mode
US8386714B2 (en) * 2010-06-29 2013-02-26 International Business Machines Corporation Reducing write amplification in a cache with flash memory used as a write cache
US8756361B1 (en) * 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
US8954664B1 (en) * 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US8910177B2 (en) 2011-04-14 2014-12-09 Advanced Micro Devices, Inc. Dynamic mapping of logical cores
CN102841852B (zh) 2011-06-24 2015-06-17 华为技术有限公司 磨损均衡方法、存储装置及信息系统
CN103389941B (zh) 2012-05-07 2016-03-02 群联电子股份有限公司 存储器格式化方法、存储器控制器及存储器存储装置
CN102890656B (zh) * 2012-09-25 2016-09-28 Tcl光电科技(惠州)有限公司 提高flash使用寿命的方法
CN103019953B (zh) * 2012-12-28 2015-06-03 华为技术有限公司 一种元数据的构建系统及其方法
GB2517361B (en) * 2013-06-13 2016-01-13 Travelport Lp Method and system for operating a memory
CN104049918B (zh) * 2014-07-03 2016-12-07 浪潮集团有限公司 一种双控存储服务器的缓存管理方法

Also Published As

Publication number Publication date
US9942324B2 (en) 2018-04-10
US20170041393A1 (en) 2017-02-09
CN107924334A (zh) 2018-04-17
WO2017020757A1 (en) 2017-02-09

Similar Documents

Publication Publication Date Title
US10331370B2 (en) Tuning a storage system in dependence upon workload access patterns
US11520720B1 (en) Weighted resource allocation for workload scheduling
KR101597384B1 (ko) 분할되고 확장가능하며 사용가능한 구조적 저장소에서의 파티션 관리
US8947988B2 (en) Efficient access to storage devices with usage bitmaps
CN107924334B (zh) 弹性命名分布式循环缓冲区的重新平衡和弹性存储方案
US11093387B1 (en) Garbage collection based on transmission object models
EP3076307A1 (en) Method and device for responding to a request, and distributed file system
CN105027069A (zh) 卷区域的重复数据删除
JP6222227B2 (ja) ストレージノード、ストレージノード管理装置、ストレージノード論理容量設定方法、プログラム、記録媒体および分散データストレージシステム
CN102929786A (zh) 非易失性存储设备集合的易失性存储器表示
CN107851122B (zh) 大规模存储和检索具有良有界生命的数据
US20130066883A1 (en) Data management apparatus and system
CN113672175A (zh) 分布式对象存储方法、装置和设备及计算机存储介质
US10310904B2 (en) Distributed technique for allocating long-lived jobs among worker processes
JP2013045379A (ja) ストレージ制御方法、情報処理装置およびプログラム
CN108733311B (zh) 用于管理存储系统的方法和设备
US20130054727A1 (en) Storage control method and information processing apparatus
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
CN105677251A (zh) 基于Redis集群的存储系统
TW201531862A (zh) 記憶體資料分版技術
CN113396566A (zh) 分布式存储系统中基于全面i/o监测的资源分配
US11797338B2 (en) Information processing device for reading object from primary device specified by identification, information processing system for reading object from primary device specified by identification, and access control method for reading object from primary device specified by identification
CN107102898B (zh) 一种基于numa架构的内存管理、构建数据结构的方法及装置
CN114415980B (zh) 多云集群数据管理系统、方法及装置
KR20150061314A (ko) 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 장애 복구 방법 및 시스템

Legal Events

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