CN115176227A - 分布式存储系统中的主数据放置 - Google Patents

分布式存储系统中的主数据放置 Download PDF

Info

Publication number
CN115176227A
CN115176227A CN202180008919.3A CN202180008919A CN115176227A CN 115176227 A CN115176227 A CN 115176227A CN 202180008919 A CN202180008919 A CN 202180008919A CN 115176227 A CN115176227 A CN 115176227A
Authority
CN
China
Prior art keywords
data item
data
storage system
distributed storage
location
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.)
Pending
Application number
CN202180008919.3A
Other languages
English (en)
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN115176227A publication Critical patent/CN115176227A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

用于管理分布式存储系统上的数据项的放置的系统、方法和计算机可读介质。在一些示例中,一种方法可以包括:确定数据项的主副本在分布式存储系统上的位置,该位置包括分布式存储系统上的数据存储;确定与数据项的主副本相关联的访问模式,该访问模式包括由分布式存储系统接收的对数据项的主副本的访问请求的起始位置以及从每一个起始位置接收的访问请求的相应数量;基于访问模式,确定分布式存储系统上用于存储数据项的主副本的不同位置,该不同位置包括分布式存储系统上的不同数据存储;以及将数据项的主副本放置在该不同位置。

Description

分布式存储系统中的主数据放置
相关申请的交叉引用
本申请要求2020年1月13日提交的美国非临时专利申请号16/741,580的权益和优先权,其公开内容通过引用以其全文并入本文。
技术领域
本技术涉及分布式存储系统,尤其涉及分布式存储系统中的主数据放置。
背景技术
具有互联网功能的设备的普及产生了对互联网服务和内容的巨大需求。在许多方面,我们已成为一个相互联系的社会,用户越来越依赖于网络服务和内容。这场互联网和互连革命给内容和存储提供商带来了巨大的挑战,他们在努力满足大量客户请求的同时往往达不到预期的性能。例如,数据提供商通常需要大型复杂的数据中心来满足用户的网络和数据需求。这些数据中心通常配备有被配置成托管特定数据和服务的服务器群,并且包括被配置成路由和处理数据请求的众多网络设备。在许多情况下,特定的数据中心预计会处理数百万的流量和数据请求。
不足为奇的是,如此大量的数据可能难以管理,并造成显著的性能下降和挑战。在一些情况下,可以实施负载平衡解决方案来提高性能和服务可靠性。然而,当前的负载平衡解决方案容易发生节点故障,通常不能充分考虑网络和数据请求中的动态变化和波动,并且可能容易受到延迟和瓶颈的影响。可以购买和实施附加的资源来增加网络容量,从而减少延迟和性能问题。不幸的是,该方法非常昂贵,增加了网络的复杂性,并且容易受到网络波动和变化的数据访问模式的影响,这可能会导致过载情况下的延迟、欠载情况下的浪费以及很大程度上可变的性能。
附图说明
为了描述能够获得本公开的各种优势和特征的方式,将参考附图中所示的具体实施例,对上文简要描述的原理进行更具体的描述。应理解,这些附图仅描绘了本公开的示例性实施例,因此不应被认为是对其范围的限制,本文的原理通过使用附图以附加的特征和细节来描述和解释,在附图中:
图1示出了根据一些示例的示例分布式存储系统;
图2示出了根据一些示例的分布式存储系统中的示例数据项放置场景;
图3示出了根据一些示例的分布式存储系统中的示例组数据项放置场景;
图4示出了根据一些示例的分布式存储系统中的另一个示例组数据项放置场景;
图5示出了根据一些示例的用于管理分布式存储系统上的数据项的放置的示例方法;
图6示出了根据一些示例的示例网络设备;
图7示出了根据一些示例的示例计算设备。
具体实施方式
下文详细讨论本公开的各个实施例。虽然讨论了具体的实施方式,但应理解这样做是为了说明的目的。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以使用其他组件和配置。本公开的附加特征和优势将在随后的描述中阐述,并且部分将从描述中显而易见,或者可以通过实践本文公开的原理来而获知。本公开的特征和优势可以通过所附权利要求中特别指出的器具和组合来实现和获得。本公开的这些特征和其他特征将通过以下描述和所附权利要求变得更加明显,或者可以通过实践本文阐述的原理而获知。
概述
本文公开了用于对分布式有状态存储系统中的数据项放置进行智能和动态管理的系统、方法和计算机可读介质。本文的数据放置技术可以通过基于访问模式、网络统计数据和/或事件或条件智能地将数据项的主副本放置在分布式存储系统上的某些位置,来减少数据访问延迟并提高数据访问性能。
根据至少一个示例,提供了一种用于管理分布式存储系统中的数据项的放置的方法。该方法可以包括确定存储在分布式存储系统上的数据项的主副本的当前位置,其中,所述数据项的主副本的所述当前位置包括来自所述分布式存储系统上的多个数据存储的当前数据存储;确定与所述数据项的主副本相关联的访问模式,所述访问模式包括由所述分布式存储系统接收的对所述数据项的主副本的一组访问请求的一个或多个起始位置,以及从所述一个或多个起始位置中的每一个接收的相应数量的访问请求;基于与所述数据项的主副本相关联的所述访问模式,确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置,所述不同位置包括来自所述多个数据存储的不同数据存储;以及将所述数据项的主副本放置在所述分布式存储系统上的不同位置。
根据至少一个示例,提供了一种用于管理分布式存储系统中的数据项的放置的系统。该系统可以包括一个或多个处理器和至少一个其中存储有指令的计算机可读存储介质,当该指令被一个或多个处理器执行时,使得该系统确定存储在分布式存储系统上的数据项的主副本的当前位置,其中,所述数据项的主副本的所述当前位置包括来自所述分布式存储系统上的多个数据存储的当前数据存储;确定与所述数据项的主副本相关联的访问模式,所述访问模式包括由所述分布式存储系统接收的对所述数据项的主副本的一组访问请求的一个或多个起始位置,以及从所述一个或多个起始位置中的每一个接收的相应数量的访问请求;基于与所述数据项的主副本相关联的所述访问模式,确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置,所述不同位置包括来自所述多个数据存储的不同数据存储;以及将所述数据项的主副本放置在所述分布式存储系统上的不同位置。
根据至少一个示例,提供了一种用于管理分布式存储系统中的数据项的放置的非暂时性计算机可读存储介质。所述非暂时性计算机可读存储介质可以存储指令,当所述指令由一个或多个处理器执行时,使得所述一个或多个处理器确定存储在分布式存储系统上的数据项的主副本的当前位置,其中,所述数据项的主副本的所述当前位置包括来自所述分布式存储系统上的多个数据存储的当前数据存储;确定与所述数据项的主副本相关联的访问模式,所述访问模式包括由所述分布式存储系统接收的对所述数据项的主副本的一组访问请求的一个或多个起始位置,以及从所述一个或多个起始位置中的每一个接收的相应数量的访问请求;基于与所述数据项的主副本相关联的所述访问模式,确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置,所述不同位置包括来自所述多个数据存储的不同数据存储;以及将所述数据项的主副本放置在所述分布式存储系统上的不同位置。
在至少一些方面,上述方法、系统和非暂时性计算机可读存储介质可以包括收集与分布式存储系统相关联的信息,该信息包括与一个或多个资源相关联的统计数据、与所述分布式存储系统上的一个或多个数据项相关联的一个或多个数据访问限制、与所述分布式存储系统和与所述分布式存储系统相关联的一个或多个网络中的至少一个相关联的一个或多个事件、数据访问模式和/或网络统计数据,其中,一个或多个资源包括存储节点、计算节点、虚拟机、软件容器、服务器、网络和/或联网设备;基于与所述分布式存储系统相关联的所述信息,确定被估计为改善与所述分布式存储系统上的一个或多个数据项相关联的数据访问性能或改善所述分布式存储系统的性能的数据放置动作,所述数据放置动作包括将至少一个数据项从至少一个存储位置移动到至少一个不同的存储位置,所述至少一个存储位置和所述至少一个不同的存储位置包括来自所述多个数据存储的不同数据存储;以及响应于确定所述数据放置动作,将所述至少一个数据项从所述至少一个存储位置移动到所述至少一个不同的存储位置。
在一些方面,确定分布式存储系统上用于存储数据项的主副本的不同位置可以包括:基于与所述数据项的主副本相关联的所述访问模式,从所述一个或多个起始位置识别与所述数据项的主副本相关联的最高数量的访问请求的起始位置;确定所述多个数据存储中的哪一个最靠近与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置;以及确定与所述不同位置相关联的所述不同数据存储位于最靠近与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置。
在一些示例中,所述一个或多个起始位置可以对应于一个或多个客户端设备,所述客户端设备生成由分布式存储系统接收的对数据项的主副本的一组访问请求。此外,在一些示例中,将数据项的主副本放置在分布式存储系统上的不同位置可以包括将数据项的主副本从当前数据存储移动到不同数据存储。
在一些情况下,确定所述不同数据存储设备位于最靠近与所述数据项的主副本相关联的最高数量的访问请求的起始位置可以包括确定所述不同数据存储和所述起始位置之间的跳数小于所述多个数据存储中的每一个和来自所述一个或多个起始位置的一个或多个剩余位置中的每一个之间的相应跳数,和/或确定所述不同数据存储和所述起始位置之间的距离小于所述多个数据存储中的每一个和来自所述一个或多个起始位置的所述一个或多个剩余位置中的每一个之间的相应距离。
在一些方面,确定分布式存储系统上用于存储数据项的主副本的不同位置可以包括:确定存储在所述分布式存储系统上的第二数据项的第二主副本的第二当前位置,其中,所述第二数据项的第二主副本的第二当前位置包括来自所述分布式存储系统上的所述多个数据存储的第二当前数据存储;基于与所述数据项的主副本相关联的所述访问模式和与所述第二数据项的第二主副本相关联的所述第二访问模式,选择所述分布式存储系统上用于存储所述第二数据项的主副本和所述第二数据项的第二主副本的不同位置;以及将所述数据项的主副本和所述第二数据项的第二主副本放置在所述分布式存储系统上的不同位置。
在一些示例中,第二访问模式可以包括与第二数据项的第二主副本相关联的第二组访问请求的一个或多个相应起始位置,以及从一个或多个相应起始位置中的每一个接收的访问请求的第二相应数量。在一些情况下,将数据项的主副本和第二数据项的第二主副本放置在分布式存储系统上的不同位置可以包括将数据项的主副本从当前位置移动到不同位置,以及将第二数据项的第二主副本从第二当前位置移动到不同位置。此外,在一些示例中,数据项的主副本可以包括分区数据集的第一分区,并且第二数据项的第二主副本可以包括分区数据集的第二分区。
在一些方面,上述方法、系统和非暂时性计算机可读存储介质可以包括确定所述数据项的主副本和所述分布式存储系统上的第二数据项已被一起访问了阈值次数;以及在确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置之后,将所述第二数据项从第二数据项的当前相应位置移动到所述不同位置,所述当前相应位置包括所述分布式存储系统上的所述多个数据存储中的一个。
上述方法、系统和非暂时性计算机可读存储介质可以包括:确定所述数据项的主副本包括对存储在所述分布式存储系统上的第二数据项的特定副本的引用,其中,所述第二数据项的特定副本包括所述第二数据项的相应主副本或所述第二数据项的相应主副本的复制品中的一个;响应于确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置以及确定所述数据项的主副本包括对所述第二数据项的特定副本的所述引用,选择所述分布式存储系统上用于存储所述第二数据项的特定副本的不同位置;以及将所述第二数据项的特定副本从所述分布式存储系统上的相应位置移动到所述分布式存储系统上的不同位置。
本概述不旨在识别要求保护的主题的关键或基本特征,也不旨在孤立地用于确定所要求保护的主题的范围。应通过参考本申请的整个说明书、任何或所有附图以及每项权利要求的适当部分来理解主题。
参考以下说明书、权利要求书和附图,前述内容以及其他特征和实施例将变得更加明显。
描述
分布式有状态存储系统管理网络环境中的状态,以提供对数据项的读写访问。在一些示例中,可以以集中的方式管理状态,其中一个或多个数据存储位于中央位置(例如核心网络),该中央位置被配置成管理对数据项的读写访问。这里,客户端可以通过向中央位置的一个或多个数据存储发送请求来执行读写操作。在一些情况下,可以选择以去中心化的方式管理只读状态复制品。例如,只读状态复制品可以由位于网络“边缘”(例如,缓存)的一个或多个数据存储来管理。网络边缘处的一个或多个数据存储可以管理对数据项的只读访问,并且客户端可以通过从网络边缘处的一个或多个数据存储向去中心化的数据存储(例如,缓存)发送请求来执行读操作。
虽然在网络边缘实施数据存储或缓存可以提高读操作的性能,但写操作会经历延迟和性能降低,因为请求客户端通常远离中心位置的数据存储。例如,客户端和向这样的客户端提供对数据项的写访问的集中式数据存储之间的距离会增加来自这样的客户端的写操作的延迟并降低数据访问性能,因为增加的距离增加了这样的客户端和集中式数据存储之间的数据访问通信所经过的网络、设备和潜在瓶颈的数量。
在一些情况下,为了减少来自客户端的写操作的延迟并提高数据访问性能,本文的方法可以基于数据访问模式,例如数据访问位置(例如,客户端相对于数据项的位置)和频率,智能地将数据项的主副本放置在分布式存储环境的战略位置。例如,基于为特定客户端和/或数据项的主副本计算的访问模式,可以将该客户端频繁访问的数据项的主副本移动到更靠近该客户端的数据存储。这可以减少往返于客户端的数据访问通信所经过的跳数,减少这样的数据访问通信所经过的潜在瓶颈的数量,并且通常减少延迟并提高该客户端的数据访问性能。
在一些情况下,在选择用于存储或移动数据项的主副本的位置时,也可以考虑其他因素。例如,当确定放置数据项的主副本(和/或复制品)的战略位置时,系统可以考虑各种因素,诸如成本考虑、网络性能考虑、客户端访问要求、客户端订阅级别(例如,高级访问级别、标准访问级别等)、与一组数据项和/或客户端相关联的访问模式、数据项的类型、数据项与其他数据项的关系(例如,数据项的分区、引用数据项等)、历史和/或预测的访问模式等。
如下文进一步描述的,所公开的技术提供了用于分布式存储系统中主数据放置的系统、方法和计算机可读介质。本技术将在随后的公开中描述如下。讨论开始于如图1所示的示例分布式存储系统的描述以及如图2至图4所示的分布式存储系统中主数据放置的各种示例和技术的描述。然后将描述用于在分布式存储系统中放置主数据的示例方法,如图5所示。讨论结束于对如图6所示的示例网络设备以及如图7所示的包括适于执行存储和计算操作的示例硬件组件的示例计算设备架构的描述。本公开现在转向图1。
图1是根据一些示例的示例分布式存储系统100的简化框图。在该示例中,分布式存储系统100包括核心102和边缘110A-N(以下统称为“110”)。核心102可以充当由分布式存储系统100提供的网络和存储服务的骨干、集中式网络和/或中央集线器。此外,核心102可以包括一个或多个网络(例如,云网络、数据中心等)和/或分布式存储系统100的网络环境的一个或多个网段,例如核心网段或集线器。
边缘110可以经由一个或多个网络设备(例如,一个或多个交换机或路由器)和/或经由一个或多个网络(例如,一个或多个公共网络(例如,广域网、公共云等)、一个或多个私有网络(例如,私有数据中心、私有云、局域网、虚拟私有网络等),和/或一个或多个混合网络(例如,混合云等))连接至核心102。在一些示例中,边缘110可以通过核心102和/或直接(或不通过核心102)彼此互连。
在一些情况下,边缘110可以表示与分布式存储系统100相关联的网络环境的网段或部分。例如,边缘110可以是位于与核心102和/或分布式存储系统100相关联的网络环境的边缘或外围的网段或部分。在其他情况下,边缘110可以表示单独的网络,例如,雾网络、局域网(LAN)、内部数据中心、企业网络等。在一些示例中,这样的网络可以位于与分布式存储系统100相关联的网络环境的边缘或外围。因此,边缘110可以在物理上和/或逻辑上比核心102更靠近一个或多个客户端160-166。
核心102可以包括用于存储或托管一个或多个数据存储106的一个或多个存储节点104。类似地,边缘110可以包括用于存储或托管数据存储114-120的存储节点112。例如,边缘110A可以包括用于存储一个或多个数据存储114的一个或多个存储节点112,边缘110B可以包括用于存储一个或多个数据存储116的一个或多个存储节点112,边缘110C可以包括用于存储一个或多个数据存储118的一个或多个存储节点112,并且边缘110N可以包括用于存储一个或多个数据存储120的一个或多个存储节点112。
存储节点104和112可以表示分布式存储系统100上的硬件和/或虚拟存储基础设施。此外,存储节点104和112可以包括一个或多个物理存储服务器、一个或多个虚拟存储服务器(例如,虚拟机(VM)、软件容器等)、一个或多个物理和/或逻辑存储组件(例如,存储驱动器、逻辑卷、存储分区、存储阵列等)和/或任何其他物理和/或虚拟/逻辑存储元件。存储节点104和112中的每一个可以由单独的存储元件实施,或者可以跨越或分布在多个存储元件上,并提供分布式存储基础设施。在一些情况下,存储节点可以跨越多个物理或虚拟存储元件。例如,存储节点可以表示从两个或更多个物理服务器和/或存储设备创建的虚拟存储设备、容器或位置。
在一些情况下,存储节点104和112可以被分组成存储节点池或集群。例如,核心102上的存储节点104可以被分组成一个或多个存储节点池或集群,并且边缘110的每一个上的存储节点112可以被分组成一个或多个存储节点池或集群。可以基于一个或多个因素(例如一个或多个共同特性)将存储节点分组到存储节点池或集群中。例如,存储节点可以按照存储类型、数据类型(例如,它们存储的数据类型)、底层存储平台、物理或虚拟位置、容量、配置设置或架构、存储角色、优先级、网段(例如,IP前缀或子网)、共享资源、操作条件等分组到存储节点池或集群中。在一些情况下,存储节点的池或集群(例如,104和/或112)可以被配置成用作单个存储节点或分布式存储。在其他情况下,存储节点的池或集群(例如,104和/或112)可以表示可以分开和/或单独操作的存储节点的集合。
核心102上的数据存储设备106和边缘110上的数据存储设备114-120可以包括用于持久存储和管理主数据项108A-N和复制品数据项130A-N的储存库、容器或结构。核心102上的数据存储设备106和边缘110上的数据存储设备114-120可以包括例如数据库、FDE、文件系统、存储系统和/或任何其他数据储存库。在一些实施方式中,数据存储106和114-120可以包括一个或多个数据库。
数据存储106和114-120上的主数据项108A-N和复制品数据项130A-N中的每一个可以包括例如记录(例如,数据库记录)、一个或多个数据库字段、数据对象、包含数据或数据值的数据结构、数据元素集合、(多个)数据值、数据分区、内容项等。在一些示例中,数据存储106和/或114-120上的数据项(例如,108A-N和/或130A-N)可以包括任何类型的独立(或大部分独立)的数据项,例如配置文件、记录、表格行、不引用其他数据项(或有限地引用其他数据项)的数据集等。
核心102上的数据存储106中的主数据项108A-N可以表示复制品数据项130A-N的主副本,而边缘110上的数据存储114-120中的复制品数据项130A-N可以表示核心102上的数据存储106中的主数据项108A-N的复制品或只读副本。主数据项108A-N可以是读写数据项,并且可以提供复制品数据项130A-N的真实来源(例如,当前和/或权威数据状态和/或版本)。例如,主数据项108A可以是读写数据项,并且可以提供与主数据项108A和复制品数据项130A相关联的数据的当前和权威状态或版本,并且可以提供与主数据项108N和复制品数据项130N相关联的数据的当前和权威状态或版本。
客户端160-166可以通过分布式存储系统100访问主数据项108A-N和复制品数据项130A-N。特别地,客户端160-166可以通过核心102和/或边缘110访问主数据项108A-N和复制品数据项130A-N。例如,对于读操作,客户端160-166可以从核心102和/或边缘110访问主数据项108A-N和/或复制品数据项130A-N,而对于写操作,客户端160-166可以通过核心102访问主数据项108A-N(例如,复制品数据项130A-N的主副本)。然而,如下文进一步描述的,基于一个或多个因素,主数据项108A-N可以被移动或放置在分布式存储系统100上的其他位置。因此,在一些情况下,客户端160-166可以从边缘110中的一个或多个访问主数据项108A-N。
客户端160-166可以表示任何计算设备或网络。例如,在一些情况下,客户端160-166可以包括一个或多个客户端端点(例如,客户端计算设备,诸如个人计算机、智能手机、平板电脑、智能电视、游戏系统、机顶盒、智能可穿戴设备等)、一个或多个服务器、一个或多个物联网(loT)设备、一个或多个自主车辆、一个或多个网络设备(例如,交换机、路由器等)等。在其他情况下,客户端160-166可以包括一个或多个网络,例如一个或多个LAN、一个或多个数据中心、一个或多个企业网络、一个或多个校园网络、一个或多个私有网络等。
分布式存储系统100可以包括协调器系统140,该协调器系统可以收集和分析关于分布式存储系统100的信息,并协调或安排分布式存储系统100上主数据项108A-N和复制品数据项130A-N的放置或移动。此外,协调器系统100可以包括一个或多个计算设备(物理的和/或虚拟的),或者可以由一个或多个计算设备来实施。例如,在一些情况下,协调器系统100可以由服务器、网络控制器、协调器装置、路由器或任何其他计算设备来实施。在其他情况下,协调器系统100可以由多个设备(例如多个服务器、多个网络控制器、多个协调器装置、多个路由器等)来实施。
在一些示例中,协调器系统140可以跟踪和监视与分布式存储系统100、主数据项108A-N和/或复制品数据项130A-N相关联的统计数据和信息,并根据协调器系统140跟踪和监视的统计数据和信息,将主数据项108A-N和/或复制品数据项130A-N中的一个或多个移动(或指示分布式存储系统100移动)到分布式存储系统100中的(多个)特定位置。
为了说明,如果协调器系统140监视的统计数据和信息表明客户端160从最靠近边缘110A的位置频繁访问主数据项108A,协调器系统140可以触发主数据项108A从核心102上的数据存储106向边缘110A上的数据存储114的移动。这样的移动将减少主数据项108A和频繁访问主数据项108A的客户端160之间的距离(以及跳数和/或潜在的瓶颈数),从而可以减少延迟并提高客户端160在从边缘110A上的数据存储114访问主数据项108A时的访问性能,而不是从核心102上的数据存储106访问主数据项108A。
在一些情况下,协调器系统140可以使用收集的信息来协调或安排分布式存储系统100上的复制品数据项130A-N的移动。例如,如先前示例所述,当将主数据项108A从核心102上的数据存储106移动到边缘110A上的数据存储114时,协调器系统140也可以将边缘110A的数据存储114上的复制品数据项130A移动到核心102上的数据存储106。作为另一个示例,如果协调器系统140收集和监视的信息指示复制品数据项130A被客户端164从最靠近核心102(或从核心102接收的响应时间比从边缘110更快)的位置频繁访问,则协调器系统140可以触发复制品数据项130A从边缘110中的一个到核心102的移动。作为又一个示例,如果协调器系统140收集和监视的信息指示复制品数据项130N很少从边缘110N被访问,则协调器系统140可以触发复制品数据项130N从边缘110N到核心102的移动,以减少边缘110N处的网络和/或资源利用(并由此增加带宽、减少拥塞和增加边缘110N处的资源可用性)。
此外,在一些情况下,协调器系统140可以将存储在不同目的数据存储处的主数据项的副本(例如,复制品数据项130A或130N)指定为主数据项,并将当前数据存储处的先前主数据项指定为复制品数据项,而不是将主数据项从当前数据存储处移动到不同目的数据存储处。在一些示例中,如果协调器系统140将复制品数据项的指定改变为主数据项,而不是将主数据项移动到复制品数据项的位置,则协调器系统140可以执行一致性检查,以确保被指定为主数据项的复制品数据项反映了最新数据或没有过时,和/或检查将复制品数据项指定为主数据项不会产生任何冲突或错误。
在一些情况下,如果协调器系统140确定将复制品数据项指定为主数据项会产生冲突或错误,和/或复制品数据项未反映最新数据或已过时,协调器系统140可以在将复制品数据项指定为主数据项之前,尝试纠正这样的冲突或错误和/或更新复制品数据项以反映最新数据。在其他情况下,协调器系统140可以决定不将复制品数据项指定为主数据项,而是决定将实际的主数据项移动到存储复制品数据项的位置,而不是试图纠正这样的冲突或错误和/或更新复制品数据项以反映最新数据。在这样的情况下,协调器系统140可以将复制品数据项作为副本留下,并且可以将复制品数据项留在其当前位置,或者将复制品数据项移动到不同位置,例如主数据项被移出的位置。
在一些示例中,由协调器系统140跟踪/监视并用于触发数据放置动作的统计数据和信息可以包括与主数据项108A-N、复制品数据项130A-N、核心102、边缘110中的一个或多个和/或客户端160-166中的一个或多个相关联的访问模式和/或度量。在一些情况下,协调器系统140可以使用这样的信息来确定是否可以通过将主数据项或复制品数据项移动到分布式存储系统100中的不同位置(例如,不同数据存储、存储节点、网段和/或网络)来改善与特定主数据项和/或特定复制品数据项相关联的访问延迟和/或访问性能。例如,协调器系统140可以使用这样的信息来确定将主数据项或复制品数据项移动到与该主数据项或复制品数据项交互最多或交互最频繁(例如,读和/或写访问操作或交互)的客户端最靠近的特定数据存储和/或位置(例如,核心102、边缘110A、边缘110B、边缘110C或边缘110A)是否会改善该主数据项或复制品数据项的访问统计数据,例如访问延时或延迟、访问请求/操作的往返时间(RTT)、错误率等。
可以由协调器系统100用于确定/执行数据项移动的访问模式信息的非限制性示例可以包括分布式存储系统100上的数据项(例如,108A-N和/或130A-N)在一段时间内已被访问的位置(例如,网络地址、物理位置、网络、地理区域、存储节点、数据存储等)、和/或通常的位置(例如,已访问了数据项的客户端160-166的位置)、来自这些位置的数据项(例如,108A-N和/或130A-N)的访问频率((例如,每个数据项从每个位置和/或由每个位置的每个客户端访问了多少次和/或多长时间一次等)、哪些客户端(例如,160-166)和/或有多少客户端访问了各种数据项(例如,108A-N和/或130A-N)、从每一个访问位置和/或客户端访问(例如,读、写等)的类型、结合或关联特定数据项访问了哪些其他数据项(如果有的话)、结合或关联对应于数据项(例如,108A-N和/或130A-N)和/或访问位置的访问操作执行了哪些其他操作、从访问位置访问数据项(例如,108A-N和/或130A-N)的时间和/或日期(和/或不同时间和/或日期之间的相对访问频率)、针对来自访问位置的请求/操作观察到的延迟和/或其他性能或访问度量、与数据项(例如,108A-N和/或130A-N)和/或访问位置的访问相关联的路由信息(例如,跳数、网络路径、路由成本、延时、性能、安全性、带宽、拥塞等)、和/或任何其他访问模式信息。
在一些情况下,由协调器系统140跟踪/监视并用于触发数据放置动作的信息可以包括其他类型的信息,这些信息可以影响分布式存储系统100的状态、安全性、稳定性和/或性能,和/或分布式存储系统100接收或处理的访问请求或操作的性能、成本和/或其他度量。例如,该信息可以包括主数据项108A-N和复制品数据项130A-N的位置、分布式存储系统100的一个或多个元件(例如,核心102、边缘110、存储节点104和112、数据存储106、数据存储114-120等)的状态/条件)、与主数据项108A-N和/或复制品数据项130A-N相关联的访问请求的响应时间、核心102和/或边缘110中的一个或多个处的可用带宽、核心102和/或边缘110中的一个或多个处的资源使用和/或工作负载状况、核心102和/或边缘110中的一个或多个处的资源可用性和/或处理能力、核心102和/或边缘110的位置、与核心102和/或边缘110相关联的核心102和/或边缘110的拓扑、性能度量/统计数据(例如,每秒输入/输出操作(IOPS)、延迟、带宽、吞吐量、分组丢失、抖动、连通性、重传、错误率、RTT、拥塞、可用性、利用率等)、与客户端160-166相关联的客户端订阅级别(例如,高级访问、标准或基本访问、访客访问等)等。
在一些情况下,协调器系统100可以使用从分布式存储系统100收集的信息或为分布式存储系统100收集的信息,确定用于将主数据项108A-N和/或复制品数据项130A-N中的一个或多个放置或分布在在分布式存储系统100上的特定位置(例如,数据存储、存储节点、段、网络等)的数据项放置方案或动作。例如,协调器系统100可以使用这样的信息来确定数据项放置方案,该方案被估计为更好地平衡或分配分布式存储系统100上的负载或负担、提高对主数据项108A-N和/或复制品数据项130A-N的访问性能、降低错误率、满足某些访问标准(例如,访问性能水平、服务质量(QoS)要求、服务水平协议(SLA)、安全要求、访问限制等)、满足数据主权法律/政策、提高资源可用性、减少资源过度使用、减少拥塞、降低成本、提高带宽、提高效率、减少网络流量等。
为了说明,协调器系统100可以使用该信息确定与主数据项108A-N相关联的写请求的来源和位置,以及来自每一个位置的写请求的相应频率,以识别用于移动或放置主数据项108A-N中的一个或多个的目标位置。该目标位置可以是例如在分布式存储系统100上的位置(例如,边缘、核心、数据存储、存储节点等),该位置最靠近最频繁的写请求起始的位置。将主数据项108A-N中的一个或多个移动或放置在这样的位置可以减少对这样的(多个)主数据项的写请求从该位置(它是访问最频繁的位置,因此占对这样的(多个)主数据项的写请求的大部分)到分布式存储系统100上存储这样的(多个)主数据项的位置所经过的距离。这有助于减少延迟并提高从该特定位置对这样的(多个)主数据项的写请求的性能。
协调器系统140可在推送和/或拉取的基础上从分布式存储系统100(例如,核心102、边缘110、分布式存储系统100上的一个或多个网络设备等)接收协调器系统140收集和监视/跟踪的信息(例如,数据项访问历史和/或统计数据、分布式存储系统100上不同位置的操作条件、数据项信息、与分布式存储系统100相关联的拓扑信息、性能度量、存储或放置信息、资源参数、请求参数、配置信息等)。例如,协调器系统140可以从分布式存储系统100中拉取相应的数据流,例如访问模式、统计数据、度量、状态信息、操作条件等。作为另一个示例,分布式存储系统100可以将这样的相应数据流推送到协调器系统140。
图1中所示的元件和组件为解释的目的而提供的说明性示例,。因此,尽管图1示出了某类型和数量的网络或网段(例如,核心102、边缘110A至110N)和组件(例如,存储节点104和112、数据存储106和114-120、主数据项108A-N、复制品数据项130A-N等),本领域普通技术人员将会认识到,其他示例可以包括与图1所示的那些不同的数量和/或类型的网络/网段和/或组件。例如,在一些情况下,分布式存储系统100可以包括比图1中所示的那些更多或更少的边缘、核心或核心段和/或组件(例如,存储节点104和112、数据存储106和114-120、主数据项108A-N、复制品数据项130A-N、设备等)。
图2示出了分布式存储系统100中的示例数据项放置场景200。在该示例中,客户端160更靠近/最靠近边缘110A,客户端162更靠近/最靠近边缘110B,客户端164更靠近/最靠近边缘110C,客户端166更靠近/最靠近边缘110N。此外,协调器系统140可以从分布式存储系统100接收和监视放置数据202。
放置数据202可以包括度量、统计数据、事件数据、状态信息、状态信息、通知、配置信息、作业/工作负载信息、数据项信息、访问模式信息、参数、偏好、客户端信息、访问和/或数据限制信息、位置信息、资源信息、网络信息等。在一些示例中,放置数据202可以包括与主数据项108A-N和复制品数据项130A-N相关联的访问请求和/或操作(例如,访问模式)的历史。访问请求和/或操作的历史可以指示与主数据项108A-N和复制品数据项130A-N相关联的一个或多个访问模式,诸如哪些客户端160-166已访问了主数据项108A-N和复制品数据项130A-N、与主数据项108A-N和复制品数据项130A-N相关联的访问请求和/或操作的位置(例如,与访问请求和/或操作相关联的客户端160-166的位置)、来自与访问请求和/或操作相关联的位置的访问请求和/或操作的频率、访问请求和/或操作的类型(例如,读、写等)、这样的访问请求和/或操作的日期/时间、与访问请求和/或操作相关联的性能统计数据、访问异常、访问趋势等。
例如,放置数据202可以指示客户端160最靠近边缘110A(相对于边缘110B-N和核心102),客户端162最靠近边缘110B(相对于边缘110A、边缘110C-N和核心102),客户端164最靠近边缘110C(相对于边缘110A-B、边缘110N和核心102),客户端166最靠近边缘110N(相对于边缘110A-C和核心102)。放置数据202也可以指示客户端162已比客户端160和164-166更频繁和/或更多次地访问了核心102的数据存储106上的主数据项108A,并且客户端166已比客户端160-164更频繁和/或更多次地访问了核心102的数据存储106上的主数据项108N。如下文进一步解释的,协调器系统140可以使用放置数据202中的该信息来将主数据项108A和108N分别移动到更靠近客户端162和166,从而减少延迟并提高来自客户端162和166的对主数据项108A和108N的访问请求和操作的性能。
在一些示例中,放置数据202可以包括关于核心102、边缘110和/或核心102和/或边缘110的组件(例如存储节点104和112、核心102上的数据存储106、边缘110上的数据存储114-120、主数据项108A-N和复制品数据项130A-N等)的信息(例如,性能统计数据、带宽、拥塞、容量、延时、资源可用性、状态、条件、度量、位置信息、配置信息、访问限制、访问策略等))。
协调器系统140可以分析放置数据202,并基于客户端160-166的访问模式和/或与分布式存储系统100相关联的任何其他信息,确定是否应移动主数据项108A-N和/或复制品数据项130A-N中的任何一个(例如,移动这样的数据项是否会产生一个或多个改善/好处)。换言之,协调器系统140可以分析放置数据202,并确定将主数据项108A-N和/或复制品数据项130A-N中的任何一个移动到不同的存储位置是否会减少未来访问请求/操作的延迟,提高未来访问请求/操作的性能,减少分布式存储系统100上的负载/负担,提高分布式存储系统100处的资源利用率,减少拥塞,优化带宽使用/可用性,提高分布式存储系统100处的资源可用性,和/或为数据访问请求/操作和/或网络/系统条件提供任何其他好处。
例如,如前所述,放置数据202可以指示客户端162(相对于客户端160和164-166)最频繁地访问了核心102上的主数据项108A。因此,为了提高客户端162访问主数据项108A和客户端166访问主数据项108N的未来请求的访问性能和效率,协调器系统140可以将主数据项108A和主数据项108N移动到更靠近客户端162和客户端166的位置,从而减少延迟并提高客户端162和166对主数据项108A和108N的未来访问请求的性能。
因此,在一些示例中,在确定(例如,基于放置数据202)客户端162最频繁地访问核心102上的主数据项108A,且客户端162比分布式存储系统100上的其他存储位置(例如,核心102和边缘110A、110C和110N)更靠近/最靠近边缘110B之后,协调器系统140可以决定将主数据项108A从核心102(例如,从数据存储106)移动到边缘110B(例如,移动到数据存储116),以提高性能并减少来自客户端162的对主数据项108A的请求/操作的延迟。
类似地,在确定(例如,基于放置数据202)客户端166最频繁地访问核心102上的主数据项108N,并且客户端166比分布式存储系统100上的其他存储位置(例如,核心102和边缘110A、110B和110C)更靠近/最靠近边缘110N之后,协调器系统140可以决定将主数据项108N从核心102(例如从数据存储106)移动到边缘110N(例如,移动到数据存储120),以提高性能并减少来自客户端166的对主数据项108N的请求/操作的延迟。
为了移动数据项或触发放置动作,协调器系统140可以向分布式存储系统100(例如,向分布式存储系统100中的核心102、边缘110A、边缘110B、边缘110C、边缘110N和/或网络设备)发送放置请求204。例如,协调器系统140可以向核心102发送放置请求204,这可以触发主数据项108A向边缘110B的移动以及主数据项108N向边缘110N的移动。放置请求204可以包括例如将主数据项108A移动到边缘110B并将主数据项108N移动到边缘110N的命令、指令和/或请求。
分布式存储系统100可以从协调器系统140接收(例如,在核心102处)放置请求204,并根据放置请求204中的请求或由该放置请求触发而执行数据放置动作206和208。在一些示例中,数据放置动作206可以是主数据项108A从核心102到边缘110B的移动,因此主数据项108A被存储得更靠近最频繁访问主数据项108A的客户端162。类似地,在一些示例中,数据放置动作208可以是主数据项108N从核心102到边缘110N的移动,因此主数据项108N被存储得更靠近最频繁访问主数据项108N的客户端166。
在数据放置动作206和208之后,主数据项108A将由边缘110B不是核心102托管(例如,存储在边缘110B上),主数据项108N将由边缘110N而不是核心102托管(例如,存储在边缘110N上)。因此,在未来的实例中,客户端162将能够从边缘110B处的数据存储116中的对应一个访问主数据项108A,并且客户端166将能够从边缘110N处的数据存储120中的对应一个访问主数据项108N。通过将主数据项108A放置在边缘110B上,协调器系统140可以减少客户端162和主数据项108A之间的距离,从而减少延迟并提高客户端162对主数据项108A的未来访问请求和操作的性能。此外,通过将主数据项108N放置在边缘110N上,协调器系统140可以减少客户端166和主数据项108N之间的距离,从而减少延迟并提高客户端166对主数据项108N的未来访问请求和操作的性能
协调器系统140可以继续接收和监视放置数据202,以确定是否应执行附加的数据放置动作。例如,如果新的放置数据指示客户端160现在是最频繁地访问(读和/或写)先前移动到边缘110B的主数据项108A的客户端,则协调器系统140可以向分布式存储系统100发送新的放置请求,以触发主数据项108A从边缘110B到更靠近客户端160的边缘110A的移动。
虽然在上述示例中,数据放置动作206和208被描述为涉及将主数据项108A和108N移动到最靠近最频繁访问主数据项108A和108N的客户端162和166的位置(例如,边缘110B和110N以及数据存储116和120),应注意,在其他示例中,数据放置动作206和208可以将主数据项108A和108N移动到其他位置(例如,其他数据存储和/或边缘、核心等)和/或基于其他因素和/或访问模式。
例如,在一些情况下,可以基于源位置和/或目的位置(例如,数据存储、核心、边缘等)的一个或多个条件(例如,带宽、资源可用性、拥塞、连通性或停机时间、错误率、状态、性能、访问限制等)、源位置和/或目的位置(例如,数据存储、核心、边缘等)的一个或多个特性(例如,位置、平台或基础设施、配置、性能统计数据、相对排名、网络类型、数据类型、资源类型等)、一个或多个事件(例如,流量波动、一个或多个网络或资源故障、一个或多个错误、一个或多个网络变化等)、一个或多个偏好或要求、成本和/或客户端订阅级别、其他访问模式(例如,与一组数据项、客户端和/或位置相关联的读和/或写访问模式)、和/或任何其他因素或因素的组合,将主数据项(例如,108A、108B或108N)移动到或移出特定位置(例如,数据存储106、114、116、118或120;核心102;边缘110A、110B、110C或边缘110N等)。
图3示出了分布式存储系统100中的示例组数据项放置场景300。如前所述,协调器系统140可以从分布式存储系统100接收和监视放置数据202。在该示例中,放置数据202可以包括与分区数据304相关联的访问模式。分区数据304可以包括主数据项108A-N。例如,主数据项108A-N中的每一个可以表示分区数据集(例如,304)的一个分区,并且主数据项108A-N一起可以构成分区数据304。因此,在该示例中,放置数据202可以为分区数据集(例如,304)中的不同数据分区(例如,108A-N)提供访问模式。
在一些情况下,放置数据202可以包括统计数据,该统计数据用于识别访问分区数据304和/或分区数据304中每一个单独分区(例如,主数据项108A-N)的客户端的相应位置以及这些客户端的相应访问频率。在一些示例中,放置数据202也可以包括识别诸如复制品数据项130A-N之类的其他数据项的访问模式的统计数据。协调器系统140因此可以分析放置数据202并确定客户端160和162最频繁地访问分区数据304。在一些情况下,协调器系统140也可以确定(例如,基于放置数据202)客户端160最靠近边缘110A,并且客户端162最靠近边缘110B。协调器系统140也可以确定,尽管客户端160最靠近边缘110A,边缘110B也比核心102(以及边缘110C和110N)更靠近客户端160。
基于该信息,协调器系统140可以确定将包括主数据项108A-N的分区数据304移动到边缘110B可以为与分区数据304整体和/或其组成部分中的一个或多个(例如,主数据项108A-N)相关联的访问请求/操作提供最大的提升和/或性能和/或成本的优势(和/或优势与劣势的平衡)。因此,在确定将分区数据304移动到边缘110B可以在与分区数据304相关联的访问请求/操作的性能和/或成本方面提供最大的提升和/或性能和/或成本的优势(和/或优势和劣势的最佳平衡)之后,协调器系统140可以向分布式存储系统100(例如,向分布式存储系统100中的核心102、边缘110B和/或网络设备)发送组放置请求302。
该组放置请求302可以包括将包括主数据项108A-N的分区数据304移动到边缘110B的指令。该指令然后可以触发组放置动作304,该动作可以包括将包括主数据项108A-N的分区数据304移动到边缘110B(例如,移动到边缘110B上的数据存储116中的一个或多个)。在组放置动作304之后,分区数据304将由边缘110B而不是核心102托管(例如,存储在边缘110B上)。因此,在未来,客户端160和162(以及任何其他客户端)将能够从边缘110B访问分区数据304(和/或分区数据304中的任何主数据项108A-N),边缘110B比核心102更靠近客户端160和162,因此可以产生访问性能改善/好处(例如,减少延迟)、成本改善/好处和/或其他改善/好处。例如,通过将分区数据304放置在边缘110B上,协调器系统140可以减少客户端160和162与分区数据304之间的距离,从而减少延迟并提高客户端160和162对分区数据304的未来访问请求和操作的性能。
协调器系统140可以继续接收和监视放置数据202,以确定是否应执行附加的放置动作。例如,如果新的放置数据指示客户端164和/或166在可配置的时间量内以比客户端160和/或162更高的频率访问了分区数据304,则协调器系统140可以确定是否应将分区数据304移动到不同位置。为了说明,如果协调器系统140确定客户端164和166比边缘110B更靠近边缘110C,则协调器系统140可以估计将分区数据304从边缘110B移动到边缘110C是否会产生性能或其他(例如,成本、资源可用性、拥塞/带宽等)改善(总体上和/或总的来说)。
协调器系统140可以基于一个或多个因素,估计将分区数据304从边缘110B移动到边缘110C是否会产生这样的改善。例如,在一些情况下,协调器系统140可以基于客户端160-166到边缘110B和110C的相对距离、客户端160-166访问分区数据304的频率(和/或频率差)、客户端160-166访问分区数据304的日期/时间、与客户端160-166和/或110C相关联的带宽和/或拥塞度量、与客户端160-166相关联的QoS要求和/或SLA、和/或任何其他相关因素来估计将分区数据304从边缘110B移动到边缘110C是否会产生这样的改善。
如前所述,在图3所示的示例中,客户端160最靠近边缘110A,客户端162最靠近边缘110B,尽管客户端160更靠近边缘110A,但根据客户端160和162的访问频率,已将分区数据304移动到边缘110B。这里,协调器系统140可以确定将分区数据304移动到边缘110B将提供比将分区数据304移动到边缘110A更大的优势/好处(总体上和/或总的来说),例如更大的性能提升。例如,协调器系统140可以比较将分区数据304移动到边缘110A和边缘110B的优势和劣势,并且基于优势和劣势的比较选择边缘110B作为分区数据304的目标位置。协调器系统140可以基于例如客户端160和162到边缘110A和110B的相对距离、客户端160和162访问分区数据304的相对频率、客户端160和162对分区数据304执行的操作类型(例如,读和/或写)、与客户端160和162和/或边缘110A和110B相关联的带宽和/或拥塞度量、与客户端160和162相关联的QoS要求和/或SLA、和/或任何其他相关因素来确定优势和劣势。
图4示出了分布式存储系统100中的另一个示例组数据项放置场景400。如前所述,协调器系统140可以从分布式存储系统100接收和监视放置数据202。在该示例中,放置数据202可以包括与数据项组相关联的访问模式,例如来自主数据项108A-N和复制品数据项130A-N的数据项组。例如,放置数据202可以包括识别频繁一起访问的一组或多组数据项的统计数据,以及访问一组或多组数据项的客户端的相应位置和这些客户端的相应访问频率。
为了说明,放置数据202可以指示主数据项108A和108N被客户端162频繁地一起访问以进行写操作,以及客户端162比核心102和边缘110A、110C和110N更靠近边缘110B。放置数据202可以指示客户端162(例如,一起和/或单独地)比客户端160、164和166(例如,一起和/或单独地)更频繁地访问主数据项108A和108N。基于该信息,协调器系统140可以确定将主数据项108A和108N移动到边缘110B将提供比将主数据项108A和108N留在它们相应位置(例如,核心102和边缘110N)或将主数据项108A和108N移动到分布式存储系统100中的不同位置更好的性能和/或其他好处/改善(总体上和/或总的来说)。
因此,在确定将主数据项108A和108N移动到边缘110B可以为与主数据项108A和108N相关联的访问请求/操作提供性能和/或方面的更大提升和/或好处/优势(和/或优势和劣势的最佳平衡)后,协调器系统140可以向分布式存储系统100(例如,向核心102、边缘110B、边缘110N和/或分布式存储系统100中的网络设备)发送组放置请求402。
组放置请求402可以包括将主数据项108A和108N移动到边缘110B的指令。该指令可以触发组放置动作404,该动作可以包括将主数据项108A和108N从核心102移动到边缘110B(例如,移动到边缘110B上的数据存储116中的一个或多个)。在组放置动作404之后,主数据项108A将由边缘110B而不是核心102托管(例如,存储在边缘110B上),并且主数据项108N将由边缘110B而不是边缘110N托管(例如,存储在边缘110B上)。因此,在未来,客户端162(以及任何其他客户端)将能够从最靠近客户端162的边缘110B访问主数据项108A和108N,并且因此可以产生访问性能改善/好处(例如,减少延迟)、成本改善/好处和/或其他改善/好处。例如,通过将主数据项108A和108N放置在边缘110B上,协调器系统140可以减少客户端162与主数据项108A和108N之间的距离,从而减少延迟并提高客户端162对主数据项108A和108N的未来访问请求和操作的性能。总体上和/或总的来说,这样的改善/好处可以被估计为大于将主数据项108A和108N移动到边缘110B的任何劣势,例如来自客户端160、164和/或166的访问请求/操作的性能的任何降低。
协调器系统140可以继续接收和监视放置数据202,以确定是否应执行附加的放置动作。如果新的放置数据指示更靠近分布式存储系统100的不同位置的其他(多个)客户端在可配置的时间量内以比客户端162更高的频率访问了主数据项108A和/或108N,则协调器系统140可以确定主数据项108A和/或108N是否应被移动到该不同位置,如前所述。
在公开了示例系统、组件和概念后,本公开现在转向用于管理分布式存储系统(例如,100)上的数据项(例如,108A-N,130A-N)的放置的示例方法500,如图5所示。本文概述的步骤是出于说明目的而提供的非限制性示例,并且可以以其任何组合来实施,包括排除、添加或修改某些步骤的组合。
在步骤502,方法500可以包括确定存储在分布式存储系统(例如,100)上的数据项(例如,主数据项108A、108B或108N)的主副本的当前位置(例如,核心102;边缘110A、110B、110C或110N;数据存储106、114、116、118或120)。在一些示例中,数据项的主副本的当前位置可以包括分布式存储系统上的当前网络或网段(例如,核心102、边缘110A、边缘110B、边缘110C或边缘110N)和/或来自分布式存储系统上的多个数据存储(例如,数据存储106和114-120)的当前数据存储(例如,数据存储106、114、116、118或120)。
在步骤504,方法500可以包括确定与数据项的主副本相关联的访问模式。在一些情况下,与数据项的主副本相关联的访问模式可以包括由分布式存储系统接收的对数据项的主副本的一组访问请求(例如,读和/或写请求)的一个或多个起始位置、从一个或多个起始位置中的每一个接收的访问请求的数量、访问请求的类型(例如,读、写等)、访问请求的日期/时间、数据访问趋势(例如,基于时间的数据访问趋势、基于客户端的数据访问趋势、基于位置的访问趋势、与特定数据项或类型相关联的访问趋势、与特定访问触发相关联的访问趋势、与特定数据项组相关联的访问趋势、数据访问序列、与特定事件相关联的访问趋势、与特定条件相关联的访问趋势等)、和/或任何其他访问模式特性。
在一些示例中,与数据项的主副本相关联的访问模式包括分布式存储系统接收的对数据项的主副本的一组访问请求(例如,读和/或写请求)的一个或多个起始位置,以及从一个或多个起始位置中的每一个接收的多个访问请求。一个或多个起始位置可以指该组访问请求起始(例如,访问请求被生成、传输等)的位置(例如,网络、客户端、地址、地理位置、区域、源等)。访问请求的数量可以指访问请求的数量和/或频率。例如,从起始位置接收的访问请求的数量可以指有多少访问请求源自该位置和/或从该位置接收访问请求的频率。
在一些情况下,可以基于从分布式存储系统收集和/或监视的放置数据(例如,202)确定与数据项的主副本相关联的访问模式。例如,在一些情况下,协调器系统(例如,140)可以从分布式存储系统收集信息(诸如访问模式统计数据(例如,数据访问请求或操作、数据访问请求或操作的数量和/或频率、与数据访问请求或操作相关联的客户端的位置、由这些客户端从这些位置访问的数据项的位置、这些数据项的位置和这些客户端的位置之间的距离、这些数据访问请求或操作的日期/时间等)、网络统计数据、资源统计数据、数据访问限制、数据访问订阅级别、网络和/或分布式存储系统特性、系统事件、错误、故障、度量、数据项特性、客户端和/或数据偏好、数据类型、网络或系统配置信息、数据访问策略等)。
在步骤506,方法500可以包括基于与数据项的主副本相关联的访问模式,确定在分布式存储系统上用于存储数据项的主副本的不同位置(例如,一个不同的核心102;边缘110A、110B、110C或110N;数据存储106、114、116、118或120)。在一些示例中,不同位置可以包括分布式存储系统上的不同网络或网段(例如,核心102、边缘110A、边缘110B、边缘110C或边缘110N)和/或来自多个数据存储的不同数据存储。
在一些方面,确定分布式存储系统上用于存储数据项的主副本的不同位置可以包括:基于与所述数据项的主副本相关联的所述访问模式,从所述一个或多个起始位置识别与所述数据项的主副本相关联的最高数量的访问请求的起始位置;确定所述多个数据存储中的哪一个最靠近(例如,地理上最靠近、逻辑上最靠近等)与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置;以及确定与所述不同位置相关联的所述不同数据存储位于最靠近与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置。
最大数量的访问请求的起始位置可以指产生对数据项的主副本的最大数量和/或频率的访问请求的位置,和/或分布式存储系统接收对数据项的主副本的最大数量和/或频率的访问请求的位置。在一些示例中,一个或多个起始位置可以对应于一个或多个客户端设备(例如,160、162、164、166),这些客户端设备生成了由分布式存储系统接收的对数据项的主副本的一组访问请求。
在一些示例中,确定不同数据存储位于最靠近与数据项的主副本相关联的最高数量的访问请求的起始位置可以包括确定(例如,与不同位置相关联的)不同数据存储之间的跳数以及起始位置小于多个数据存储中的每一个与来自一个或多个起始位置的一个或多个剩余位置中的每一个之间的相应跳数(例如,除了最高数量的访问请求的起始位置之外的一个或多个起始位置),和/或确定所述不同数据存储和所述起始位置之间的距离小于所述多个数据存储中的每一个和来自所述一个或多个起始位置的所述一个或多个剩余位置中的每一个之间的相应距离。
在其他示例中,确定不同数据存储位于最靠近与数据项的主副本相关联的最高数量的访问请求的起始位置可以替代地或附加地包括确定不同数据存储和起始位置之间的跳数小于与分布式存储系统相关联的多个网络或网段(例如,核心102、边缘110)中的每一个和一个或多个剩余位置中的每一个之间的相应跳数,和/或确定不同数据存储和起始位置之间的距离小于与分布式存储系统相关联的多个网络或网段(例如,核心102、边缘110)中的每一个和来自一个或多个起始位置的一个或多个剩余位置中的每一个之间的相应距离。
在一些方面,确定分布式存储系统上用于存储数据项的主副本的不同位置可以包括确定存储在分布式存储系统上的第二数据项(例如,主数据项108A、108B或108N)的第二主副本的第二当前位置;基于与所述数据项的主副本相关联的所述访问模式和与所述第二数据项的第二主副本相关联的所述第二访问模式,选择所述分布式存储系统上用于存储所述第二数据项的主副本和所述第二数据项的第二主副本的不同位置;以及将所述数据项的主副本和所述第二数据项的第二主副本放置在所述分布式存储系统上的不同位置。在一些示例中,第二数据项的第二主副本的第二当前位置可以包括来自分布式存储系统上的多个数据存储的第二当前数据存储。此外,在一些示例中,数据项的主副本可以包括分区数据集(例如,分区数据304)的第一分区,并且第二数据项的第二主副本可以包括分区数据集的第二分区。
在一些情况下,第二访问模式可以包括与第二数据项的第二主副本相关联的第二组访问请求的一个或多个相应起始位置(例如,第二组访问请求的起始位置或接收位置),以及从一个或多个相应起始位置中的每一个接收的第二相应数量的访问请求(例如,访问请求的数量和/或频率)。在一些示例中,将数据项的主副本和第二数据项的第二主副本放置在分布式存储系统上的不同位置可以包括将数据项的主副本从当前位置移动或迁移到不同位置,以及将第二数据项的第二主副本从第二当前位置移动或迁移到不同位置。
在步骤508,方法500可以包括将数据项的主副本放置在分布式存储系统上的不同位置。在一些示例中,将数据项的主副本放置在分布式存储系统上的不同位置可以包括将数据项的主副本从当前数据存储移动或迁移到不同数据存储。
在一些方面,方法500可以包括确定数据项的主副本和分布式存储系统上的第二数据项被一起访问了阈值次数和/或频率;以及在确定分布式存储系统上用于存储数据项的主副本的不同位置之后,将第二数据项从第二数据项的当前相应位置移动到不同位置。当前相应位置可以包括例如分布式存储系统上的多个数据存储中的数据存储。
在一些方面,方法500可以包括确定数据项的主副本包括对存储在分布式存储系统上的第二数据项的特定副本的引用(例如,指针、关联、链接、关系等);响应于确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置以及确定所述数据项的主副本包括对所述第二数据项的特定副本的所述引用,选择所述分布式存储系统上用于存储所述第二数据项的特定副本的不同位置;以及将所述第二数据项的特定副本从所述分布式存储系统上的相应位置移动到所述分布式存储系统上的不同位置。在一些示例中,第二数据项的特定副本可以包括第二数据项的主副本或第二数据项的主副本的复制品。
在一些实施方式中,方法500可以基于访问模式信息和/或一个或多个其他因素来确定用于放置(例如,移动、迁移、存储等)数据项的不同位置。例如,在一些方面,方法500可以包括收集与分布式存储系统相关联的信息;基于与分布式存储系统相关联的信息,确定被估计为改善与分布式存储系统上的一个或多个数据项相关联的数据访问性能(例如,延迟、响应时间、错误率等)和/或改善分布式存储系统的性能(例如,分布式存储系统作为整体的性能和/或分布式存储系统的一个或多个组件/资源的性能)的数据放置动作;以及响应于确定数据放置动作,将至少一个数据项(例如,主数据项108A、108B和/或108N和/或复制品数据项130A和/或130N)从至少一个存储位置移动到至少一个不同的存储位置(例如,不同数据存储、核心102、边缘110A、边缘110B、边缘110C或边缘110N)。
在一些示例中,所收集的与分布式存储系统相关联的信息可以包括与一个或多个资源(例如,存储节点104和/或112、计算节点、核心102、边缘110、网络设备、带宽等)相关联的统计数据、与分布式存储系统上的一个或多个数据项相关联的一个或多个数据访问限制(例如,基于位置的限制、基于策略的限制、基于客户端的限制、基于网络的限制、基于资源的限制、基于源的限制、基于数据类型的限制、基于订阅的限制等)、数据存储限制(例如,基于数据主权法律、数据类型、资源类型、网络利用、资源利用、日期/时间、资源可用性等的限制)、一个或多个事件(例如,错误、故障、网络变化、流量变化、访问事件、系统事件等)、数据访问模式和/或与分布式存储系统相关联的一个或多个网络相关联的网络统计数据。在一些示例中,一个或多个资源可以包括存储节点、计算节点、虚拟机、软件容器、服务器、网络和/或联网设备(例如,交换机、路由器、防火墙、装置等)。
在一些情况下,数据放置动作可以包括将至少一个数据项从至少一个存储位置(例如,数据存储、核心102、边缘110A、边缘110B、边缘110C或边缘110N)移动到至少一个不同的存储位置。在一些示例中,至少一个存储位置和至少一个不同的存储位置可以包括来自多个数据存储的不同数据存储、与分布式存储系统相关联的不同网络、不同网段等。
在一些示例中,当基于多个其他因素(例如,访问模式、性能统计数据、资源度量、环境条件、事件等)确定数据放置动作(例如,移动或迁移数据项)时,可以给用于确定数据放置动作的因素赋予权重。例如,假设基于来自不同访问位置的数据项的访问频率、分布式存储系统上不同存储节点的状态、以及分布式存储系统上的不同网络或网段处的可用带宽量来确定数据项的数据放置动作。这里,可以为访问频率、不同存储节点的状态以及用于确定放置动作的可用带宽量确定并应用不同的权重。这将允许放置动作考虑各种因素,其中某些因素获得更高的权重、强调或优先级。
本公开现在转向图6和图7,图6和图7示出了示例网络设备和计算设备,例如交换机、路由器、节点、服务器、客户端设备、协调器(例如协调器系统140)等。
图6示出了适用于执行交换、路由、负载平衡和其他联网操作的示例网络设备600。网络设备600包括中央处理单元(CPU)604、接口602和总线610(例如,PCI总线)。当在适当的软件或固件的控制下工作时,CPU 604负责执行分组管理、错误检测和/或路由功能。CPU604优选地在包括操作系统和任何适当的应用软件的软件控制下完成所有这些功能。CPU604可以包括一个或多个处理器608,例如来自INTEL X86系列微处理器的处理器。在一些情况下,处理器608可以是专门设计的用于控制网络设备600的操作的硬件。在一些情况下,存储器606(例如,非易失性RAM、ROM等)也构成CPU 604的一部分。然而,有许多不同的方式可以将存储器耦接到系统。
接口602通常作为模块化接口卡(有时称为“线路卡”)提供。通常,它们控制网络上数据分组的发送和接收,并且有时支持与网络设备600一起使用的其他外围设备。可以提供的接口包括以太网接口、帧中继接口、电缆接口、DSL接口、令牌环接口等。此外,可以提供各种超高速接口,例如快速令牌环接口、无线接口、以太网接口、千兆以太网接口、ATM接口、HSSI接口、POS接口、FDDI接口、WIFI接口、3G/4G/5G蜂窝接口、CAN总线、LoRA等。通常,这些接口可以包括适于与适当介质通信的端口。在一些情况下,它们也可以包括独立的处理器,在一些实例中,还包括易失性RAM。独立处理器可以控制诸如分组交换、媒体控制、信号处理、密码处理和管理之类的通信密集型任务。通过为通信密集型任务提供单独的处理器,这些接口允许主CPU(例如604)有效地执行路由计算、网络诊断、安全功能等。
虽然图6所示系统是本公开的一个特定网络设备,但绝不是可以实施本公开的唯一网络设备架构。例如,通常使用具有处理通信以及路由计算等的单个处理器的架构。此外,网络设备600也可以使用其他类型的接口和介质。
无论网络设备的配置如何,其均可以采用一个或多个存储器或存储器模块(包括存储器606),该存储器或存储器模块被配置成存储用于通用网络操作的程序指令和用于本文所述的漫游、路由优化和路由功能的机制。例如,程序指令可以控制操作系统和/或一个或多个应用的操作。一个或多个存储器也可以被配置成存储诸如移动性绑定、注册和关联表等的表。存储器606也可以保存各种软件容器和虚拟化的执行环境和数据。
网络设备600也可以包括专用集成电路(ASIC),该专用集成电路可以被配置成执行路由和/或交换操作。ASIC可以经由总线610与网络设备600中的其他组件通信,以交换数据和信号,并协调网络设备600的各种类型的操作,例如路由、交换和/或数据存储操作。
图7示出了系统700的示例计算系统架构,其可用于处理数据操作和请求,存储和移动数据项,协调数据放置动作,以及执行其他计算操作。在该示例中,系统700的组件使用诸如总线的连接706彼此电通信。系统700包括处理单元(CPU或处理器)704和连接706,连接706将包括存储器720(例如只读存储器(ROM)718和随机访问存储器(RAM)716)的各种系统组件耦接到处理器704。系统700可以包括与处理器704直接连接、紧邻处理器704或者集成为处理器704的一部分的高速存储器的缓存。系统700可以将数据从存储器720和/或存储设备708复制到缓存702,以供处理器704快速访问。这样,缓存可以提供性能提升,避免处理器704在等待数据时出现延时。这些和其他模块可以控制或被配置成控制处理器704执行各种动作。也可以使用其他存储器720。存储器720可以包括具有不同性能特性的多种不同类型的存储器。处理器704可以包括任何通用处理器和硬件或软件服务,例如存储在存储设备708中的服务1 710、服务2 712和服务3 714,它们被配置成控制处理器704以及专用处理器(其中软件指令被结合到实际的处理器设计中)。处理器704可以是完全独立的计算系统,包含多个内核或处理器、总线、存储器控制器、缓存等。多核心处理器可以是对称的或非对称的。
为了能够与计算系统700进行用户交互,输入设备722可以表示任何数量的输入机构,例如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。输出设备724也可以是本领域技术人员已知的多种输出机制中的一个或多个。在一些实例中,多模态系统可以使用户能够提供多种类型的输入来与计算系统700通信。通信接口726通常可以控制和管理用户输入和系统输出。对于在任何特定硬件配置上的操作没有限制,因此这里的基本特征可以很容易地替换为正在开发的改善的硬件或固件布置。
存储设备708是非易失性存储器,并且可以是硬盘或可以存储可由计算机访问的数据的其他类型的计算机可读介质,例如磁带盒、闪存卡、固态存储设备、数字多功能盘、盒式磁带、随机访问存储器(RAM)716、只读存储器(ROM)718及其混合。
存储设备708可以包括用于控制处理器704的服务710、712、714。也可以考虑其他硬件或软件模块。存储设备708可以连接到连接706。在一个方面,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件,以及必要的硬件组件,例如处理器704、连接706、输出设备724等,执行该功能。
为解释清楚起见,在一些实例中,本技术可以被呈现为包括单独的功能块,该功能块包括设备、设备组件、以软件体现的方法中的步骤或例程、或硬件和软件的组合。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括含有比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号本身的介质。
可以使用存储在计算机可读介质中或可从计算机可读介质中获得的计算机可执行指令实施根据上述示例的方法。这样的指令可以包括例如指令和数据,这些指令和数据使得或以其他方式配置通用计算机、专用计算机或专用处理设备来执行某个功能或某组功能。使用的部分计算机资源可以通过网络访问。计算机可执行指令可以是例如二进制、中间格式指令,例如汇编语言、固件或源代码。可以用于存储在根据所述示例的方法期间使用的指令、信息和/或创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、配备有非易失性存储器的USB设备、网络存储设备等。
实施根据这些公开内容的方法的设备可以包括硬件、固件和/或软件,并可采用多种形式因素中的任何一种。这样的形状因素的典型示例包括膝上型电脑、智能电话、小形状因素个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能也可以体现在外围设备或附加卡中。作为进一步的示例,这样的功能也可以在不同芯片中的电路板上或在单个设备中执行的不同过程中实施。
指令、用于传达这样的指令的介质、用于执行这样的指令的计算资源和用于支持这样的计算资源的其他结构是用于提供这些公开内容中所述功能的手段。
尽管使用了各种示例和其他信息来解释所附权利要求范围内的方面,但不应基于这样的示例中的特定特征或布置来暗示对权利要求的限制,因为普通技术人员能够使用这些示例得出各种实施方式。此外,尽管可能已以特定于结构特征和/或方法步骤的示例的语言描述了一些主题,但应理解,在所附权利要求中定义的主题不必限于这些描述的特征或动作。例如,这样的功能可以以不同方式分布或在不同于本文所识别的那些组件中执行。相反,所描述的特征和步骤是作为所附权利要求范围内的系统和方法的组件的示例来公开的。
叙述一组“中的至少一个”的权利要求语言表示该组中的一个成员或该组中的多个成员满足权利要求。例如,叙述“A和B中的至少一个”的权利要求语言意味着A、B、或A和B。

Claims (20)

1.一种方法,包括:
确定存储在分布式存储系统上的数据项的主副本的当前位置,其中,所述数据项的主副本的所述当前位置包括来自所述分布式存储系统上的多个数据存储的当前数据存储;
确定与所述数据项的主副本相关联的访问模式,所述访问模式包括由所述分布式存储系统接收的对所述数据项的主副本的一组访问请求的一个或多个起始位置,以及从所述一个或多个起始位置中的每一个接收的相应数量的访问请求;
基于与所述数据项的主副本相关联的所述访问模式,确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置,所述不同位置包括来自所述多个数据存储的不同数据存储;以及
将所述数据项的主副本放置在所述分布式存储系统上的不同位置。
2.根据权利要求1所述的方法,其中,确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置包括:
基于与所述数据项的主副本相关联的所述访问模式,从所述一个或多个起始位置识别与所述数据项的主副本相关联的最高数量的访问请求的起始位置;
确定所述多个数据存储中的哪一个最靠近与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置;以及
确定与所述不同位置相关联的所述不同数据存储位于最靠近与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置。
3.根据权利要求2所述的方法,其中,所述一个或多个起始位置对应于一个或多个客户端设备,所述一个或多个客户端设备生成由所述分布式存储系统接收的对所述数据项的主副本的所述一组访问请求,并且其中,将所述数据项的主副本放置在所述分布式存储系统上的不同位置包括将所述数据项的主副本从所述当前数据存储移动到所述不同数据存储。
4.根据权利要求2或3所述的方法,其中,确定所述不同数据存储位于最靠近与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置包括以下至少一项:
确定所述不同数据存储和所述起始位置之间的跳数小于所述多个数据存储中的每一个和来自所述一个或多个起始位置的一个或多个剩余位置中的每一个之间的相应跳数;以及
确定所述不同数据存储和所述起始位置之间的距离小于所述多个数据存储中的每一个和来自所述一个或多个起始位置的所述一个或多个剩余位置中的每一个之间的相应距离。
5.根据权利要求1所述的方法,其中,确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置包括:
确定存储在所述分布式存储系统上的第二数据项的第二主副本的第二当前位置,其中,所述第二数据项的第二主副本的第二当前位置包括来自所述分布式存储系统上的所述多个数据存储的第二当前数据存储;
基于与所述数据项的主副本相关联的所述访问模式和与所述第二数据项的第二主副本相关联的所述第二访问模式,选择所述分布式存储系统上用于存储所述第二数据项的主副本和所述第二数据项的第二主副本的不同位置;以及
将所述数据项的主副本和所述第二数据项的第二主副本放置在所述分布式存储系统上的不同位置。
6.根据权利要求5所述的方法,其中,所述第二访问模式包括与所述第二数据项的第二主副本相关联的第二组访问请求的一个或多个相应的起始位置,以及从所述一个或多个相应的起始位置中的每一个接收的第二相应数量的访问请求,并且其中,将所述数据项的主副本和所述第二数据项的第二主副本放置在所述分布式存储系统上的不同位置包括将所述数据项的主副本从所述当前位置移动到所述不同位置,并且将所述第二数据项的第二主副本从所述第二当前位置移动到所述不同位置。
7.根据权利要求5或6所述的方法,其中,所述数据项的主副本包括分区数据集的第一分区,所述第二数据项的第二主副本包括所述分区数据集的第二分区。
8.根据前述权利要求中任一项所述的方法,进一步包括:
确定所述数据项的主副本和所述分布式存储系统上的第二数据项已被一起访问了阈值次数;以及在确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置之后,将所述第二数据项从第二数据项的当前相应位置移动到所述不同位置,所述当前相应位置包括所述分布式存储系统上的所述多个数据存储中的一个。
9.根据前述权利要求中任一项所述的方法,进一步包括:
确定所述数据项的主副本包括对存储在所述分布式存储系统上的第二数据项的特定副本的引用,其中,所述第二数据项的特定副本包括所述第二数据项的相应主副本或所述第二数据项的相应主副本的复制品中的一个;
响应于确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置以及确定所述数据项的主副本包括对所述第二数据项的特定副本的所述引用,选择所述分布式存储系统上用于存储所述第二数据项的特定副本的不同位置;以及
将所述第二数据项的特定副本从所述分布式存储系统上的相应位置移动到所述分布式存储系统上的不同位置。
10.根据前述权利要求中任一项所述的方法,进一步包括:
收集与所述分布式存储系统相关联的信息,所述信息包括与一个或多个资源相关联的统计数据、与所述分布式存储系统上的一个或多个数据项相关联的一个或多个数据访问限制、与所述分布式存储系统和与所述分布式存储系统相关联的一个或多个网络中的至少一个相关联的一个或多个事件、数据访问模式和网络统计数据中的至少一个,其中,所述一个或多个资源包括存储节点、计算节点、虚拟机、软件容器、服务器、网络和联网设备中的至少一个;
基于与所述分布式存储系统相关联的所述信息,确定被估计为改善与所述分布式存储系统上的一个或多个数据项相关联的数据访问性能或改善所述分布式存储系统的性能的数据放置动作,所述数据放置动作包括将至少一个数据项从至少一个存储位置移动到至少一个不同的存储位置,所述至少一个存储位置和所述至少一个不同的存储位置包括来自所述多个数据存储的不同数据存储;以及
响应于确定所述数据放置动作,将所述至少一个数据项从所述至少一个存储位置移动到所述至少一个不同的存储位置。
11.一种系统,包括:
一个或多个处理器;以及
至少一个计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令由所述一个或多个处理器执行时,使得所述一个或多个处理器:
确定存储在分布式存储系统上的数据项的主副本的当前位置,其中,所述数据项的主副本的所述当前位置包括来自所述分布式存储系统上的多个数据存储的当前数据存储;
确定与所述数据项的主副本相关联的访问模式,所述访问模式包括由所述分布式存储系统接收的对所述数据项的主副本的一组访问请求的一个或多个起始位置,以及从所述一个或多个起始位置中的每一个接收的相应数量的访问请求;
基于与所述数据项的主副本相关联的所述访问模式,确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置,所述不同位置包括来自所述多个数据存储的不同数据存储;以及
将所述数据项的主副本放置在所述分布式存储系统上的不同位置。
12.根据权利要求11所述的系统,其中,将所述数据项的主副本放置在所述分布式存储系统上的不同位置包括将所述数据项的主副本从所述当前数据存储移动到所述不同数据存储,并且其中,确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置包括:
基于与所述数据项的主副本相关联的所述访问模式,从所述一个或多个起始位置识别与所述数据项的主副本相关联的最高数量的访问请求的起始位置;
确定所述多个数据存储中的哪一个最靠近与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置;以及
确定与所述不同位置相关联的所述不同数据存储位于最靠近与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置。
13.根据权利要求12所述的系统,其中,确定所述不同数据存储位于最靠近与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置包括以下至少一项:
确定所述不同数据存储和所述起始位置之间的跳数小于所述多个数据存储中的每一个和来自所述一个或多个起始位置的一个或多个剩余位置中的每一个之间的相应跳数;以及
确定所述不同数据存储和所述起始位置之间的距离小于所述多个数据存储中的每一个和来自所述一个或多个起始位置的所述一个或多个剩余位置中的每一个之间的相应距离。
14.根据权利要求11所述的系统,其中,确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置包括:
确定存储在所述分布式存储系统上的第二数据项的第二主副本的第二当前位置,其中,所述第二数据项的第二主副本的第二当前位置包括来自所述分布式存储系统上的所述多个数据存储的第二当前数据存储;
基于与所述数据项的主副本相关联的所述访问模式和与所述第二数据项的第二主副本相关联的所述第二访问模式,选择所述分布式存储系统上用于存储所述第二数据项的主副本和所述第二数据项的第二主副本的不同位置;以及
将所述数据项的主副本和所述第二数据项的第二主副本放置在所述分布式存储系统上的不同位置。
15.根据权利要求14所述的系统,其中,所述数据项的主副本包括分区数据集的第一分区,所述第二数据项的第二主副本包括所述分区数据集的第二分区,并且其中,所述第二访问模式包括与所述第二数据项的第二主副本相关联的第二组访问请求的一个或多个相应的起始位置,以及从所述一个或多个相应的起始位置中的每一个接收的第二相应数量的访问请求。
16.根据权利要求11至15中任一项所述的系统,所述至少一个计算机可读存储介质存储指令,当所述指令由所述一个或多个处理器执行时,使得所述系统:
确定所述数据项的主副本和所述分布式存储系统上的第二数据项已被一起访问了阈值次数;以及在确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置之后,将所述第二数据项从第二数据项的当前相应位置移动到所述不同位置,所述当前相应位置包括所述分布式存储系统上的所述多个数据存储中的一个。
17.根据权利要求11至16中任一项所述的系统,所述至少一个计算机可读存储介质存储指令,当所述指令由所述一个或多个处理器执行时,使得所述系统:
确定所述数据项的主副本包括对存储在所述分布式存储系统上的第二数据项的特定副本的引用,其中,所述第二数据项的特定副本包括所述第二数据项的相应主副本或所述第二数据项的相应主副本的复制品中的一个;
响应于确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置以及确定所述数据项的主副本包括对所述第二数据项的特定副本的所述引用,选择所述分布式存储系统上用于存储所述第二数据项的特定副本的不同位置;以及
将所述第二数据项的特定副本从所述分布式存储系统上的相应位置移动到所述分布式存储系统上的不同位置。
18.根据权利要求11至19中任一项所述的系统,所述至少一个计算机可读存储介质存储指令,当所述指令由所述一个或多个处理器执行时,使得所述系统:
收集与所述分布式存储系统相关联的信息,所述信息包括与一个或多个资源相关联的统计数据、与所述分布式存储系统上的一个或多个数据项相关联的一个或多个数据访问限制、与所述分布式存储系统和与所述分布式存储系统相关联的一个或多个网络中的至少一个相关联的一个或多个事件、数据访问模式和网络统计数据中的至少一个,其中,所述一个或多个资源包括存储节点、计算节点、虚拟机、软件容器、服务器、网络和联网设备中的至少一个;
基于与分布式存储系统相关联的信息,确定被估计为改善与所述分布式存储系统上的一个或多个数据项相关联的数据访问性能或改善所述分布式存储系统的性能的数据放置动作,所述数据放置动作包括将至少一个数据项从至少一个存储位置移动到至少一个不同的存储位置,所述至少一个存储位置和所述至少一个不同的存储位置包括来自所述多个数据存储的不同数据存储;以及
响应于确定所述数据放置动作,将所述至少一个数据项从所述至少一个存储位置移动到所述至少一个不同的存储位置。
19.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质中存储有指令,当所述指令由一个或多个处理器执行时,使得所述一个或多个处理器:
确定存储在分布式存储系统上的数据项的主副本的当前位置,其中,所述数据项的主副本的所述当前位置包括来自所述分布式存储系统上的多个数据存储的当前数据存储;
确定与所述数据项的主副本相关联的访问模式,所述访问模式包括由所述分布式存储系统接收的对所述数据项的主副本的一组访问请求的一个或多个起始位置,以及从所述一个或多个起始位置中的每一个接收的相应数量的访问请求;
基于与所述数据项的主副本相关联的所述访问模式,确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置,所述不同位置包括来自所述多个数据存储的不同数据存储;以及
将所述数据项的主副本放置在所述分布式存储系统上的不同位置。
20.根据权利要求19所述的非暂时性计算机可读存储介质,其中,确定所述分布式存储系统上用于存储所述数据项的主副本的不同位置包括:
基于与所述数据项的主副本相关联的所述访问模式,从所述一个或多个起始位置识别与所述数据项的主副本相关联的最高数量的访问请求的起始位置;
确定所述多个数据存储中的哪一个最靠近与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置;以及
确定与所述不同位置相关联的所述不同数据存储位于最靠近与所述数据项的主副本相关联的所述最高数量的访问请求的所述起始位置。
CN202180008919.3A 2020-01-13 2021-01-19 分布式存储系统中的主数据放置 Pending CN115176227A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/741,580 US11327688B2 (en) 2020-01-13 2020-01-13 Master data placement in distributed storage systems
PCT/US2021/014002 WO2021146725A1 (en) 2020-01-13 2021-01-19 Master data placement in distributed storage systems

Publications (1)

Publication Number Publication Date
CN115176227A true CN115176227A (zh) 2022-10-11

Family

ID=74885012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180008919.3A Pending CN115176227A (zh) 2020-01-13 2021-01-19 分布式存储系统中的主数据放置

Country Status (8)

Country Link
US (2) US11327688B2 (zh)
EP (1) EP4091316A1 (zh)
JP (1) JP2023514487A (zh)
KR (1) KR20220126764A (zh)
CN (1) CN115176227A (zh)
AU (1) AU2021208652B2 (zh)
CA (1) CA3162863A1 (zh)
WO (1) WO2021146725A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3729250A1 (en) * 2017-12-20 2020-10-28 Telefonaktiebolaget LM Ericsson (publ) Datafall: a policy-driven algorithm for decentralized placement and reorganization of replicated data
US11275666B1 (en) * 2020-10-01 2022-03-15 Dell Products, L.P. Method and apparatus for identifying high importance devices of a consistency group
JP2022180956A (ja) * 2021-05-25 2022-12-07 富士通株式会社 情報処理装置,プログラム及び情報処理方法
CN114338716B (zh) * 2021-12-14 2024-02-13 浙江清华长三角研究院 一种灵活务工场景下的用户原始数据的分布式存储方法
CN114244859B (zh) * 2022-02-23 2022-08-16 阿里云计算有限公司 数据处理方法及装置和电子设备
EP4329266A1 (de) * 2022-08-25 2024-02-28 DGC Switzerland AG Verfahren und systemanordnung zur geolokation von datensätzen

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838909A (en) 1996-05-23 1998-11-17 Sandcastle, Inc. Reducing latency when synchronizing access to a multi-user database over a network
US8165146B1 (en) 1999-10-28 2012-04-24 Lightwaves Systems Inc. System and method for storing/caching, searching for, and accessing data
JP5082310B2 (ja) * 2006-07-10 2012-11-28 日本電気株式会社 データ移行装置及びプログラム
CN101577716B (zh) 2009-06-10 2012-05-23 中国科学院计算技术研究所 基于InfiniBand网络的分布式存储方法和系统
US10097406B2 (en) 2012-03-19 2018-10-09 Level 3 Communications, Llc Systems and methods for data mobility with a cloud architecture
US8903764B2 (en) 2012-04-25 2014-12-02 International Business Machines Corporation Enhanced reliability in deduplication technology over storage clouds
JP5958301B2 (ja) * 2012-11-21 2016-07-27 富士通株式会社 情報処理方法、プログラム、情報処理装置、及び情報処理システム。
US9317223B2 (en) 2012-12-17 2016-04-19 International Business Machines Corporation Method and apparatus for automated migration of data among storage centers
US9996562B2 (en) * 2013-07-09 2018-06-12 Oracle International Corporation Automated database migration architecture
US9298727B2 (en) 2013-11-01 2016-03-29 International Business Machines Corporation Plural architecture master data management
WO2016041998A1 (en) * 2014-09-15 2016-03-24 Foundation For Research And Technology - Hellas (Forth) Tiered heterogeneous fast layer shared storage substrate apparatuses, methods, and systems
US10452538B2 (en) * 2015-01-21 2019-10-22 Red Hat, Inc. Determining task scores reflective of memory access statistics in NUMA systems

Also Published As

Publication number Publication date
CA3162863A1 (en) 2021-07-22
WO2021146725A1 (en) 2021-07-22
AU2021208652B2 (en) 2023-05-11
EP4091316A1 (en) 2022-11-23
US11327688B2 (en) 2022-05-10
US20210216214A1 (en) 2021-07-15
JP2023514487A (ja) 2023-04-06
AU2021208652A1 (en) 2022-09-08
US20220236885A1 (en) 2022-07-28
KR20220126764A (ko) 2022-09-16

Similar Documents

Publication Publication Date Title
AU2021208652B2 (en) Master data placement in distributed storage systems
CN112640371B (zh) 在分布式存储环境上执行数据操作的方法和系统
US10069707B2 (en) System and method for seamless horizontal scaling using logical scalable units
US9317336B2 (en) Method and apparatus for assignment of virtual resources within a cloud environment
WO2018000993A1 (zh) 一种分布式存储的方法和系统
US9363177B2 (en) System and methods for communicating in a telecommunication network via independent key routing and proxies
US20190319881A1 (en) Traffic management based on past traffic arrival patterns
JP6724095B2 (ja) 分散システムにおける集中ネットワーク構成
US10599354B1 (en) Block storage with volume locality placement based on performance requirements
Lin et al. ASIC: An architecture for scalable intra-domain control in OpenFlow
US20200285547A1 (en) Intelligent snapshot generation and recovery in a distributed system
CN113711186A (zh) 用于云规模存储和数据传输的分布式对象放置、复制和检索
US9380018B2 (en) System and method for communicating in a telecommunication network via common key routing and proxies
AU2018303662B2 (en) Scalable statistics and analytics mechanisms in cloud networking
US11108854B2 (en) Peer-to-peer network for internet of things resource allocation operation
US9338126B2 (en) System and method for communicating in a telecommunication network via independent key routing and data locality tables
US9363224B2 (en) System and methods for communicating in a telecommunication network using common key routing and data locality tables
EP3685567B1 (en) Load shedding of traffic based on current load state of target capacity

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